Arithmetische Intensität und Bandbreite von RAM oder VRAM

Arithmetische Intensität und Bandbreite von RAM oder VRAM

Die Beziehung zwischen RAM und ein Prozessor ist völlig symbiotisch, während RAM ohne den Prozessor bedeutungslos ist, kann er ohne ihn nicht leben, egal wo er sich befindet. Sie sind also Teil eines Ganzen, das sich gegenseitig nährt. Es gibt also einen Zusammenhang für die Leistung und dies ist die arithmetische Intensität. Wir erklären, woraus es besteht.

Ein Prozessor, unabhängig davon, ob es sich um einen CPU oder eine GPU, tut nichts anderes als Prozessdaten , was zum führt Speicherbedarf es zu füttern. Leider hat sich im Laufe der Zeit der Abstand zwischen der Geschwindigkeit des Speichers und der der CPU vergrößert, was zur Implementierung von Techniken wie Cache-Speicher geführt hat. Auch die können wir nicht vergessen Latenz zwischen dem Prozessor und dem Speicher, der auftritt, wenn die Schnittstelle zwischen dem RAM und dem Prozessor die Daten nicht mit ausreichender Geschwindigkeit gewähren oder ändern kann.

Wir können die Leistung jedoch nicht allgemein messen, da jedes Programm bzw. jeder Algorithmus innerhalb jedes Programms eine andere Rechenlast hat. Und hier kommt der Begriff der arithmetischen Intensität ins Spiel. Aber sehen wir uns an, was er ist und woraus er besteht, sowie andere Elemente, die mit der Leistung auf einem Computer zu tun haben.

Was ist arithmetische Intensität?

Intensität der Arithmetik

Die arithmetische Dichte ist ein Leistungsmaß, das aus der Messung der Anzahl von Gleitkommaoperationen besteht, die ein Prozessor an einem bestimmten Codeabschnitt ausführt. Um es zu erhalten, wird die Anzahl der Gleitkommaoperationen durch die Anzahl der Bytes dividiert, die der Algorithmus zur Ausführung verwendet.

Wie nützlich ist es? Nun, die Tatsache, dass es in bestimmten Bereichen der Informatik, in denen für bestimmte Aufgaben sehr leistungsfähige Computer benötigt werden, ermöglicht, die bestmögliche Hardware zur Ausführung der Algorithmen unter den besten Bedingungen zu haben. Dieses Modell wird hauptsächlich im wissenschaftlichen Rechnen verwendet. Es dient aber auch der Leistungsoptimierung in geschlossenen Systemen wie Videospielkonsolen.

Bei Verwendung einer hochparallelisierten Hardwarearchitektur ist eine hohe Rechenintensität, d ist hoch. Da es in vielen Anwendungen und insbesondere in der Grafik erforderlich ist, dass eine Berechnung mehrfach abgearbeitet wird und somit im Vergleich eine große Rechenleistung benötigt wird.

Algorithmusleistung und Beziehung zur arithmetischen Intensität

Notación O Algoritmos

Beim Schreiben eines Algorithmus berücksichtigen Programmierer die Leistung der Algorithmen, die sie in ihren Programmen schreiben, die durch die Big-O-Notation gemessen wird, die den Mittelwert der Operationen in Bezug auf die Daten misst. Die Big-O-Notation wird nicht mit einem Benchmark gemessen, sondern die Programmierer berechnen sie per Hand, um eine grobe Vorstellung von der Arbeitsbelastung der Programme zu bekommen

  • Oder (1): die Der Algorithmus hängt nicht von der Größe der zu verarbeitenden Daten ab. Ein Algorithmus mit einer Leistung von O (1) gilt als ideal und ist unschlagbar.
  • Auf): Die Ausführungszeit ist direkt proportional zur Datengröße, die Leistung wächst linear. Es kann auch sein, dass a
  • O (log n): tritt in Algorithmen auf, die normalerweise ein Problem zerlegen und teilweise lösen, wie z. B. Datenordnungsalgorithmen oder binäre Suchen.
  • O (n log n): es ist eine Weiterentwicklung des vorherigen, es geht darum, die Auflösung der verschiedenen Teile weiter aufzuteilen.
  • Auf 2 ): Es gibt Algorithmen, die mehrere Iterationen durchführen, weil sie die Daten mehrmals abfragen müssen. Daher sind sie normalerweise stark repetitive Algorithmen und haben daher eine exponentielle Rechenlast.
  • Auf!): Ein Algorithmus, der dieser Komplexität folgt, ist in Bezug auf die Leistung ein völlig fehlerhafter Algorithmus und muss neu geschrieben werden.

Nicht alle Algorithmen können das Komplexitätsniveau von O (1) erreichen, und einige von ihnen arbeiten auf einem Hardwaretyp viel besser als auf einem anderen. Aus diesem Grund wurden in den letzten Jahren domänenspezifische Beschleuniger oder Prozessoren entwickelt, die einen Algorithmustyp gegenüber anderen beschleunigen. Die allgemeine Idee besteht darin, die Algorithmen in Teile zu unterteilen und jeden von ihnen mit der für seine arithmetische Intensität am besten geeigneten Verarbeitungseinheit zu behandeln.

Verhältnis zwischen Kommunikation und Computer

CPU RAM Placa PC

Der umgekehrte Fall ist das Verhältnis zwischen Kommunikation und Berechnung, das umgekehrt zur Rechenintensität gemessen wird und daher bei Gleitkommaoperationen durch Division der Anzahl der Bytes durch die Leistung erreicht wird. Es wird also verwendet, um die Bandbreite zu messen, die zum Ausführen dieses Teils des Codes erforderlich ist. Das Problem beim Messen besteht darin, dass die Daten nicht immer an der gleichen Stelle sind und daher die RAM-Bandbreite als Referenz verwendet wird.

Es muss berücksichtigt werden, dass dies keine absolut zuverlässige Maßnahme ist, nicht nur aufgrund der Tatsache, dass das Cache-System die Daten näher an den Prozessor bringt, sondern auch aufgrund der Tatsache, dass es das Phänomen der Latenz gibt, bei dem jede Art von Speicher Verwendeter Arbeitsspeicher hat unterschiedliche Vor- und Nachteile und kann daher je nach verwendetem Speichertyp variieren.

Heutzutage wird bei der Auswahl des Speichers in einem System nicht nur die Bandbreite, sondern auch der Energieverbrauch berücksichtigt, da die Energiekosten für das Verschieben der Daten die Kosten für die Verarbeitung der Daten übersteigen. Sie entscheiden sich also für bestimmte Arten von spezifischem Speicher in bestimmten Anwendungen. Natürlich immer innerhalb der Kosten, die mit dem Aufbau eines Systems verbunden sind, und sie sind bei einem Supercomputer nicht gleich wie bei einem Heim-PC.