Intensitatea aritmetică și lățimea de bandă a RAM sau VRAM

Intensitatea aritmetică și lățimea de bandă a RAM sau VRAM

Relația dintre RAM iar un procesor este total simbiotic, în timp ce memoria RAM nu are sens fără procesor, nu poate trăi fără ea, indiferent de locul în care se află. Deci fac parte dintr-un întreg care se hrănește reciproc. Deci există o relație pentru performanță și aceasta este intensitatea aritmetică. Vă explicăm în ce constă.

Un procesor, indiferent dacă este un Procesor sau un GPU, nu face altceva decât prelucrarea datelor , ceea ce duce la nevoie de memorie să-l hrănească. Din păcate, odată cu trecerea timpului, distanța dintre viteza memoriei și cea a procesorului a crescut, ceea ce a dus la implementarea unor tehnici precum memoria cache. Nu putem uita nici latență între procesor și memorie, care apare atunci când interfața dintre RAM și procesor nu poate acorda sau modifica datele cu suficientă viteză.

Cu toate acestea, nu putem măsura performanța într-un mod general, deoarece fiecare program sau mai bine zis, fiecare algoritm din cadrul fiecărui program are o sarcină de calcul diferită. Și aici intervine termenul de intensitate aritmetică. Dar, haideți să vedem ce este și în ce constă, precum și alte elemente care au legătură cu performanța de pe un computer.

Ce este intensitatea aritmetică?

Intensitate aritmetică

Densitatea aritmetică este o măsură a performanței, constând în măsurarea numărului de operații în virgulă mobilă pe care un procesor le execută pe o anumită secțiune de cod. Pentru a-l obține, numărul de operații în virgulă mobilă este împărțit la numărul de octeți pe care algoritmul îl folosește pentru a executa.

Cât de util este? Ei bine, faptul că permite în anumite domenii de calcul în care sunt necesare computere foarte puternice pentru sarcini specifice pentru a putea avea cel mai bun sistem hardware posibil pentru a executa algoritmii în cele mai bune condiții. Acest model este utilizat în principal în calculul științific. Deși servește și pentru optimizarea performanței în sisteme închise, cum ar fi consolele de jocuri video.

În cazul utilizării unei arhitecturi hardware foarte paralelizate, este necesară o intensitate aritmetică ridicată, adică un raport scăzut între lățimea de bandă și capacitatea de calcul din momentul în care raportul dintre capacitatea de calcul a respectivelor procesoare și lățimea de bandă a memoriei disponibile este inalt. Deoarece este necesar în multe aplicații și mai ales în grafică, calculul este procesat de mai multe ori și, prin urmare, este necesară o mare putere de calcul în comparație.

Performanța algoritmului și relația cu intensitatea aritmetică

Notație O Algoritmi

Când scriu un algoritm, programatorii iau în considerare performanța algoritmilor pe care îi scriu în programele lor, care este măsurată prin notația Big O, care măsoară media operațiunilor în raport cu datele. Notația Big O nu se măsoară folosind nici un punct de referință, ci mai degrabă programatorii le calculează manual pentru a avea o idee aproximativă despre volumul de lucru al programelor

  • Sau (1): algoritmul nu depinde de mărimea datelor de procesat. Un algoritm cu o performanță O (1) este considerat a avea o performanță ideală și este imbatabil.
  • Pe): timpul de execuție este direct proporțional cu dimensiunea datelor, performanța crește liniar. Se poate, de asemenea, ca a
  • O (jurnal n): apare în algoritmi care, de obicei, elimină și rezolvă o problemă pe parte, cum ar fi algoritmi de ordonare a datelor sau căutări binare.
  • O (n log n): este o evoluție a celei anterioare, este vorba despre împărțirea în continuare a rezoluției diferitelor părți.
  • Pe 2 ): există algoritmi care efectuează mai multe iterații, deoarece trebuie să interogheze datele de mai multe ori. Prin urmare, aceștia sunt de obicei algoritmi foarte repetitivi și, prin urmare, au o sarcină de calcul exponențială.
  • Pe!): Un algoritm care urmărește această complexitate este un algoritm complet defect în termeni de performanță și necesită rescriere.

Nu toți algoritmii pot atinge nivelul de complexitate O (1), iar unii dintre ei au performanțe mult mai bune pe un tip de hardware decât pe altul. De aceea, în ultimii ani au fost dezvoltate acceleratoare sau procesoare specifice domeniului, care accelerează un tip de algoritm peste altele. Ideea generală este împărțirea algoritmilor în părți și tratarea fiecăruia dintre ele cu cea mai potrivită unitate de procesare pentru intensitatea sa aritmetică.

Raportul dintre comunicare și calcul

CPU RAM Placa PC

Cazul invers este raportul dintre comunicare și calcul, care se măsoară invers la intensitatea aritmetică și, prin urmare, se realizează prin împărțirea numărului de octeți la puterea în operații în virgulă mobilă. Deci, este folosit pentru a măsura lățimea de bandă necesară pentru a executa acea parte a codului. Problema la măsurare vine din faptul că datele nu sunt întotdeauna în același loc și, prin urmare, lățimea de bandă RAM este utilizată ca referință.

Trebuie avut în vedere că nu este o măsură total fiabilă, nu numai datorită faptului că sistemul cache aduce datele mai aproape de procesor, ci și datorită faptului că există fenomenul de latență în care fiecare tip de memorie RAM folosită are diferite avantaje și dezavantaje și un rezultat poate varia în funcție de tipul de memorie utilizată.

Astăzi, la alegerea memoriei într-un sistem, se ia în calcul nu numai lățimea de bandă, ci și consumul de energie, deoarece costul energetic al mutării datelor depășește costul prelucrării acestora. Așadar, optați pentru anumite tipuri de memorie specifică în anumite aplicații. Desigur, întotdeauna în limita costurilor asociate construirii unui sistem și nu sunt aceleași într-un supercomputer ca într-un PC de acasă.