Intensità aritmetica e larghezza di banda di RAM o VRAM

Intensità aritmetica e larghezza di banda di RAM o VRAM

La relazione tra RAM e un processore è totalmente simbiotico, mentre la RAM non ha senso senza il processore non può vivere senza di essa indipendentemente da dove si trovi. Quindi fanno parte di un tutto che si nutre a vicenda. Quindi c'è una relazione per la performance e questa è l'intensità aritmetica. Spieghiamo in cosa consiste.

Un processore, indipendentemente dal fatto che sia un CPU o GPU, non fa altro che dati di processo , che porta al bisogno di memoria per alimentarlo. Purtroppo, con il passare del tempo, la distanza tra la velocità della memoria e quella della CPU è andata crescendo, il che ha portato all'implementazione di tecniche come la memoria cache. Non possiamo dimenticare neanche il latenza tra il processore e la memoria, che si verifica quando l'interfaccia tra la RAM e il processore non può concedere o modificare i dati con una velocità sufficiente.

Tuttavia, non possiamo misurare le prestazioni in modo generale, poiché ogni programma o meglio, ogni algoritmo all'interno di ciascun programma ha un carico computazionale diverso. Ed è qui che entra in gioco il termine intensità aritmetica. Ma vediamo di cosa si tratta e in cosa consiste, così come altri elementi che hanno a che fare con le prestazioni su un computer.

Cos'è l'intensità aritmetica?

Intensità aritmetica

La densità aritmetica è una misura delle prestazioni, che consiste nel misurare il numero di operazioni in virgola mobile che un processore esegue su una specifica sezione di codice. Per ottenerlo, il numero di operazioni in virgola mobile viene diviso per il numero di byte che l'algoritmo utilizza per eseguire.

Quanto è utile? Bene, il fatto che permetta in certi campi dell'informatica dove sono necessari computer molto potenti per compiti specifici di poter avere il miglior sistema hardware possibile per eseguire gli algoritmi nelle migliori condizioni. Questo modello è utilizzato principalmente nell'informatica scientifica. Sebbene serva anche a ottimizzare le prestazioni in sistemi chiusi come le console per videogiochi.

Nel caso di utilizzo di un'architettura hardware altamente parallelizzata, è richiesta un'elevata intensità aritmetica, cioè un basso rapporto tra larghezza di banda e capacità di calcolo dal momento in cui il rapporto tra la capacità di calcolo di detti processori e la larghezza di banda di memoria disponibile è alto. Poiché è richiesto in molte applicazioni e soprattutto nella grafica che un calcolo venga elaborato più volte e quindi è richiesta una grande potenza di calcolo a confronto.

Prestazioni dell'algoritmo e relazione con l'intensità aritmetica

Notazione O Algoritmos

Quando scrivono un algoritmo, i programmatori tengono conto delle prestazioni degli algoritmi che scrivono nei loro programmi, misurate dalla notazione Big O, che misura la media delle operazioni rispetto ai dati. La notazione Big O non viene misurata utilizzando alcun benchmark, ma piuttosto i programmatori li calcolano a mano per avere un'idea approssimativa del carico di lavoro dei programmi

  • Oppure (1): il algoritmo non dipende dalla dimensione dei dati da elaborare. Un algoritmo con una prestazione O (1) è considerato avere prestazioni ideali ed è imbattibile.
  • Su): il tempo di esecuzione è direttamente proporzionale alla dimensione dei dati, le prestazioni crescono linearmente. Può anche essere che a
  • O (log n): si verifica in algoritmi che di solito sminuzzano e risolvono un problema per parte, come algoritmi di ordinamento dei dati o ricerche binarie.
  • O (n log n): è un'evoluzione della precedente, si tratta di suddividere ulteriormente la risoluzione delle diverse parti.
  • Sopra 2 ): ci sono algoritmi che eseguono più iterazioni perché devono interrogare i dati più volte. Pertanto, sono solitamente algoritmi altamente ripetitivi e quindi hanno un carico computazionale esponenziale.
  • Su!): Un algoritmo che segue questa complessità è un algoritmo totalmente imperfetto in termini di prestazioni e richiede una riscrittura.

Non tutti gli algoritmi possono raggiungere il livello di complessità O (1) e alcuni di essi funzionano molto meglio su un tipo di hardware rispetto a un altro. Ecco perché negli ultimi anni sono stati sviluppati acceleratori o processori specifici del dominio che accelerano un tipo di algoritmo rispetto ad altri. L'idea generale è quella di dividere gli algoritmi in parti e trattare ciascuna di esse con l'unità di elaborazione più adatta alla sua intensità aritmetica.

Rapporto tra comunicazione e informatica

CPU RAM Placca PC

Il caso inverso è il rapporto tra comunicazione e calcolo, che si misura inversamente all'intensità aritmetica e quindi si ottiene dividendo il numero di byte per la potenza nelle operazioni in virgola mobile. Quindi viene utilizzato per misurare la larghezza di banda necessaria per eseguire quella parte del codice. Il problema durante la misurazione deriva dal fatto che i dati non sono sempre nello stesso posto e quindi la larghezza di banda della RAM viene utilizzata come riferimento.

Bisogna tener conto che non si tratta di una misura del tutto affidabile, non solo per il fatto che il sistema di cache avvicina i dati al processore, ma anche per il fatto che esiste il fenomeno della latenza dove ogni tipo di memoria Le RAM utilizzate presentano diversi vantaggi e svantaggi e un risultato può variare a seconda del tipo di memoria utilizzata.

Oggi, quando si sceglie la memoria in un sistema, non viene presa in considerazione solo la larghezza di banda, ma anche il consumo energetico, poiché il costo energetico dello spostamento dei dati supera il costo dell'elaborazione. Quindi stai optando per determinati tipi di memoria specifica in determinate applicazioni. Naturalmente, sempre entro i costi associati alla costruzione di un sistema e non sono gli stessi in un supercomputer come in un PC di casa.