CPU e GPU per il machine learning

Una parete curva piena di schermi

Autori

Josh Schneider

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

CPU e GPU per il machine learning

Rispetto alle unità di elaborazione centrale (CPU) generiche, le potenti unità di elaborazione grafica (GPU) sono in genere preferite per le applicazioni di intelligenza artificiale (AI) esigenti come machine learning (ML), deep learning (DL) e reti neurali.

Dotate di centinaia o migliaia di core di elaborazione, le unità di elaborazione grafica (GPU) eccellono nel tipo di elaborazione parallela e nei calcoli a virgola mobile necessari per l'addestramento dei modelli di machine learning. Tuttavia, in alcuni tipi di modelli AI, le CPU possono essere efficaci, soprattutto per i workload più leggeri. 

Originariamente progettate per il rendering grafico, le GPU sono spesso chiamate schede grafiche. Tuttavia, questi potenti processori sono in grado di fare molto di più. La potenza di calcolo ad alta velocità e le funzionalità avanzate di elaborazione parallela hanno reso le GPU altamente desiderabili in settori come la robotica, l'elaborazione ad alte prestazioni (HPC), i data center e, soprattutto, l'intelligenza artificiale. 

Sebbene non siano potenti come le GPU, le unità di elaborazione centrale (CPU) sono il componente più critico di qualsiasi sistema informatico. Comunemente considerate "il cervello del computer", le CPU gestiscono tutte le attività di gestione informatica di alto livello, inclusa la gestione delle GPU (se presenti).

Sebbene la maggior parte delle attività di machine learning richieda processori più potenti per analizzare set di dati di grandi dimensioni, molte CPU moderne sono sufficienti per alcune applicazioni di machine learning su scala ridotta. Sebbene le GPU siano più utilizzate nei progetti di machine learning, l'aumento della domanda può portare a un aumento dei costi. Le GPU richiedono anche più energia rispetto alle CPU, aumentando sia i costi energetici che l'impatto ambientale.

Quando si seleziona un processore per un progetto di machine learning, le CPU potrebbero essere più convenienti, sebbene la maggior parte dei progetti di AI moderatamente avanzati traggano beneficio dall'elaborazione parallela di una GPU. 

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Comprendere il machine learning

In informatica, il machine learning (ML) è costituito dallo studio, la pratica e l'applicazione di determinati tipi di algoritmi che consentono ai computer di imitare i modi in cui gli esseri umani imparano a svolgere le attività in modo autonomo. I computer con capacità di machine learning possono migliorare la precisione delle prestazioni nel tempo attraverso la ripetizione, via via che sono esposti a più dati.

Gli algoritmi di machine learning possono essere suddivisi in tre componenti fondamentali: un processo decisionale, una funzione di errore e un processo di ottimizzazione del modello.

  1. Processo decisionale: i sistemi di machine learning sono progettati per prendere decisioni consapevoli al fine di fornire risultati desiderabili con elevata precisione e richiedono un intervento umano minimo o nullo. Il processo decisionale risponde a un certo grado di dati di input e formula una risposta sotto forma di previsione o classificazione.
  2. Funzione di errore: quando un algoritmo di machine learning ha deciso, valuta la precisione del proprio output. La funzione di errore può confrontare gli output con errori noti o identificati in precedenza, per determinare se un output raggiunge una soglia di precisione soddisfacente.
  3. Processo di ottimizzazione dei modelli: la caratteristica distintiva di un algoritmo di machine learning è la capacità di "imparare" dai propri errori e di adattare automaticamente il processo decisionale per fornire risultati più accurati. Il processo di ottimizzazione del modello utilizza i punti dati nei materiali di addestramento del modello per fare e valutare continuamente le previsioni. Ripetendo questo processo, il modello può autocalibrarsi per una maggiore precisione nel tempo.

Tipi di machine learning

Il machine learning può essere suddiviso in tre tipi principali a seconda dei tipi di algoritmi impiegati e della portata dei dati utilizzati. Sebbene il termine deep learning sia spesso usato in modo intercambiabile con machine learning, il deep learning è un sottoinsieme delle reti neurali e le reti neurali sono un sottoinsieme del machine learning.

Tutti e tre i termini possono essere considerati sottoinsiemi dell'intelligenza artificiale (AI) e tutti e tre i termini possono essere indicati sotto l'ombrello del machine learning, tuttavia, ci sono lievi differenze:

  • Apprendimento automatico: il machine learning classico utilizza algoritmi per analizzare lo storico, per fare emergere prima i modelli e poi fornire previsioni con un intervento umano minimo o nullo. Questo tipo di machine learning richiede grandi set di dati in continuo aggiornamento per migliorare la sua capacità di prevedere risultati voluti o accurati. 
  • Reti neurali: le reti neurali sono addestrate su enormi quantità di dati e utilizzano i nodi per imitare il processo decisionale del cervello umano. Durante l'addestramento di una rete neurale, l'algoritmo confronta i dati di input con un set di dati standardizzato, verificando la validità delle probabili previsioni rispetto ai potenziali errori. 
  • Deep learning: il deep learning, un'evoluzione delle reti neurali, si riferisce a un tipo di AI algoritmica che utilizza un modello di rete neurale con tre o più strati di nodi decisionali.

Casi d'uso del machine learning

I recenti progressi nella tecnologia AI hanno portato a una proliferazione di applicazioni di machine learning nei vari settori e nella vita quotidiana. Alcuni casi d'uso comuni del machine learning includono:

  • Riconoscimento vocale: il machine learning è utilizzato nel riconoscimento vocale dei computer per identificare i modelli vocali naturali e interpretare il significato implicito dei comandi vocali. Il riconoscimento vocale è la tecnologia alla base di strumenti come gli smart speaker e di assistenti digitali come Siri.
  • Servizio clienti: servizi come gli gli AI chatbot dell'assistenza clienti utilizzano il machine learning per aiutare i clienti lungo il loro percorso. Tra gli esempi rientrano gli agenti virtuali sui siti di e-commerce, i bot di messaggistica e i moderatori automatici sulle piattaforme di messaggistica come Slack e Discord.
  • Motori di raccomandazione: dotati di più opzioni che mai, i motori di raccomandazione basati sull'AI aiutano a selezionare le informazioni per fornire suggerimenti di qualità in linea con i gusti degli utenti. Motori di ricerca come Google o Bing si affidano al machine learning per fornire risultati di ricerca migliori. Piattaforme multimediali come Spotify o Netflix utilizzano il machine learning per fare emergere nuovi programmi o canzoni in base alle preferenze passate dei consumatori.
  • Rilevamento delle frodi: le banche e altri istituti finanziari possono utilizzare il machine learning per individuare le transazioni sospette attraverso il rilevamento delle frodi. L'apprendimento supervisionato può addestrare un modello utilizzando informazioni sulle transazioni fraudolente note. Il rilevamento delle anomalie può identificare le transazioni apparentemente insolite che meritano ulteriori indagini.
AI Academy

Prepararsi all'AI con l'hybrid cloud

Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.

Principali differenze tra CPU e GPU

La principale differenza tra CPU e GPU si riduce all'elaborazione sequenziale rispetto a quella parallela. Le CPU sono progettate per elaborare le istruzioni e risolvere rapidamente i problemi in sequenza. Le GPU sono progettate per attività più complesse che traggono benefici dal calcolo parallelo. Poiché le GPU sono in grado di suddividere meglio i problemi significativi in problemi più piccoli che possono essere risolti contemporaneamente, le GPU possono offrire maggiore velocità ed efficienza nelle applicazioni intensive di machine learning. 

Caratteristiche chiave della CPU  

Le CPU sono progettate per attività informatiche generali come calcoli di base, riproduzione multimediale e navigazione web. In quanto "cervello" del computer, gestiscono anche tutti i processi e le funzioni necessari dietro le quinte per il corretto funzionamento dell'hardware e dei sistemi operativi del computer. 

Funzionalità:

  • I componenti standard includono uno o più core logici in cui vengono elaborati i dati, le unità di memoria, il clock della CPU e un'unità di controllo. Poiché le CPU elaborano le attività in sequenza, l'accesso a più core consente alle CPU di operare in multitasking distribuendo i problemi tra più processori.
  • Le CPU elaborano i dati in sequenza, risolvendo i problemi uno dopo l'altro con una buona velocità, ma con capacità limitata. Set di dati di grandi dimensioni possono causare colli di bottiglia significativi.    
  • Le CPU hanno relativamente pochi core che funzionano ad alta velocità. 

Vantaggi

  • Progettate per casi d'uso generici, le CPU sono in grado di gestire la maggior parte dei tipi di calcoli richiesti nelle applicazioni comuni. 
  • Le CPU sono componenti fondamentali dell'attrezzatura informatica. In quanto tali, sono comunemente disponibili, a basso costo e facili da programmare. 

Svantaggi:

  • Anche con più core, le CPU sequenziali saranno sempre più lente delle GPU per determinati tipi di problemi, dove il calcolo parallelo è l'unico modo per ottimizzare le velocità di elaborazione. 

Caratteristiche chiave della GPU

Le GPU sono state originariamente progettate per il rendering della grafica, ma dall'introduzione della piattaforma di programmazione GPU CUDA di Nvidia nel 2006, gli sviluppatori hanno trovato innumerevoli applicazioni per questi potenti processori. Le GPU vengono utilizzate in aggiunta alle CPU per aggiungere potenza ai sistemi che eseguono il rendering di contenuti video di alta qualità o l'elaborazione di set di dati grandi e complessi.

Funzionalità:

  • Le GPU sono progettate con molti più core in esecuzione a velocità inferiori, ottimizzate per l'elaborazione parallela. Le GPU suddividono i problemi complessi in migliaia di attività più piccole da elaborare contemporaneamente anziché in serie. 

Vantaggi

  • Le funzionalità della GPU possono raggruppare le istruzioni per eseguire molto bene calcoli di nicchia. Sebbene i core della GPU siano più lenti dei core della CPU, l'elaborazione parallela cumulativa può risolvere problemi grandi e complicati più velocemente rispetto alle alternative sequenziali. 
  • Sebbene le GPU siano più complicate da programmare rispetto alle CPU, sono ben ottimizzate per i linguaggi e i framework di programmazione del machine learning più diffusi, come Python e Tensorflow. 

Svantaggi:

  • Le GPU sono più costose e meno facilmente disponibili delle CPU.
  • La programmazione delle GPU richiede alcune conoscenze specialistiche. 

Tre importanti differenze tra CPU e GPU

Le differenze tra CPU e GPU si riducono a tre aree chiave: architettura, velocità di elaborazione e accessibilità.

  1. Architettura: le CPU sono progettate con un numero inferiore di core per elaborare i dati in sequenza. Le GPU presentano in genere centinaia o migliaia di core in più, progettati per l'elaborazione parallela.
  2. Velocità di elaborazione: le CPU sono progettate per gestire rapidamente attività generali e di alto livello, tuttavia hanno difficoltà con set di dati estremamente grandi, come quelli utilizzati nel machine learning. Le GPU sono ottimizzate in modo specifico per l'elaborazione di questi tipi di set di dati di grandi dimensioni. Le GPU superano di gran lunga le CPU nella maggior parte delle applicazioni di machine learning. 
  3. Accessibilità: le CPU sono più comuni delle GPU e sono meno costose da acquisire e utilizzare. La programmazione delle GPU richiede una formazione più specializzata. Tuttavia, le GPU sono diffuse nei casi d'uso del machine learning e dell'AI, con librerie e community solide che offrono supporto. 

CPU e GPU per le applicazioni di machine learning

Sia le CPU che le GPU sono unità di elaborazione. Entrambe sono in grado di gestire attività simili, con diversi gradi di prestazioni in base alle esigenze di un'applicazione specifica. Inoltre, sebbene entrambe possano essere pensate come unità singole, sono ciascuna un insieme di componenti diversi progettati e organizzati per diversi tipi di operazioni.

Prima delle GPU, la CPU è la parte più importante e fondamentale di qualsiasi sistema informatico, dai laptop e smartphone ai satelliti e ai supercomputer. Agendo come un manager invisibile, le CPU leggono e interpretano input e richieste, emettono istruzioni per eseguire calcoli e supervisionano tutte le operazioni di un sistema informatico. 

Nonostante siano più potenti, le GPU non sono utilizzate per sostituire le CPU. Invece, come co-processore, le GPU vengono utilizzate per aumentare le funzionalità di un sistema informatico. Nei sistemi che utilizzano le GPU, la CPU svolge ancora un ruolo importante nella gestione delle attività delle GPU e di tutte le altre attività di elaborazione che, sebbene non richiedano così tante risorse, sono comunque parte integrante delle funzioni del computer. 

Perché le GPU sono meglio per il machine learning

Nell'elaborazione dei dati su larga scala, l'uso di CPU sottodimensionate crea spesso fastidiosi colli di bottiglia. All'incrocio tra informatica e data science, gli algoritmi di machine learning spesso si affidano alle GPU per accelerare l'enorme elaborazione dei set di dati utilizzati per l'addestramento dei modelli di deep learning con una latenza ridotta. Questo perché anche le CPU multi-core elaborano i dati in modo diverso dalle GPU. 

Strutturalmente, i core della GPU sono in genere migliaia, mentre la maggior parte delle CPU di livello consumer contiene solo uno, due, quattro o sei core. Le CPU di livello server possono contenere centinaia o addirittura migliaia di core, ma il numero di core da solo non determina le prestazioni. 

Le CPU multi-core sono migliori nel multitasking rispetto alle CPU single-core, ma elaborano comunque i dati in sequenza. Le GPU gestiscono i dati in modo diverso, attraverso un processo noto come calcolo parallelo. Anziché elaborare le attività in sequenza, le GPU suddividono i problemi in componenti e utilizzano la loro moltitudine di core per lavorare contemporaneamente su diverse parti di un problema. 

Per attività impegnative come la computer vision per i sistemi di AI o i programmi di AI generativa, il calcolo parallelo supera facilmente l'elaborazione sequenziale.

Le GPU, con le loro funzionalità di elaborazione in parallelo, continuano a essere un componente critico per i progetti di AI. Nell'ambito del machine learning, in particolare, le GPU vengono utilizzate per accelerare i tempi di addestramento delle applicazioni di machine learning e per eseguire i tipi di matematica tensoriale e di moltiplicazione delle matrici che i sistemi di ML richiedono per fare inferenze e produrre risultati utili.       

Soluzioni correlate
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Center è una piattaforma software compatibile con OpenStack per gestire l'infrastruttura di cloud privati su IBM zSystems e IBM LinuxONE.

Esplora Cloud Infrastructure Center
Soluzioni per l'infrastruttura IT

Scopri i server, lo storage e il software progettati per l'hybrid cloud e la strategia AI della tua azienda.

Scopri le soluzioni per le infrastrutture IT
Soluzioni per l'infrastruttura cloud

Trova la soluzione di infrastruttura cloud adatta alle esigenze della tua azienda e scala le risorse on-demand.

Soluzioni cloud
Fai il passo successivo

Trasforma la sua infrastruttura aziendale con l'hybrid cloud e le soluzioni pensate per l'AI di IBM. Scopri i server, lo storage e i software progettati per proteggere, scalare e modernizzare la tua azienda o ascolta i pareri degli esperti per migliorare la tua strategia di AI generativa.

Scopri le soluzioni per le infrastrutture IT Scarica l'ebook