In der vergangenen Woche hatte ich einen Artikel über obskure GPU-Spezifikationen geschrieben. Während einige der verwirrendsten Teile von Spezifikationen in Videokarten enthüllt wurden, haben sich eine Reihe von Lesern mit dem Artikel beschäftigt und gesagt, dass es detaillierter sein könnte. Es wäre nur angebracht, weitere Fragen zu den Komponenten der Grafikkarte zu beantworten, die in diesem Artikel nicht unbedingt von diesem Artikel beantwortet wurden. Ohne weitere Umschweife, hier sind einige Antworten auf die drängendsten Fragen über Grafikkartenspezifikationen, die anscheinend nicht vollständig erklärt werden, was jeder im Web verstehen kann.

Was ist CUDA und was ist ein CUDA-Kern?

Compute Unified Device Architecture (CUDA) ist eine Funktion in den meisten neueren Nvidia-Grafikkarten, die es dem Computer ermöglicht, einen Teil der GPU (oder sogar die gesamte GPU) als "Assistent" für den Prozessor zu verwenden. GPUs enthalten viel mehr Muskeln als Computer, aber ihre Architektur wurde in der Vergangenheit mehr für die Berechnung von Zeichnungsabständen und Polygonen optimiert (weshalb sie auf Grafikkarten gelegt werden). CUDA verwandelt die GPU in einen Mathe-Geek, der Zahlen sehr schnell knacken kann und die wahnsinnige Muskelkraft einer GPU für andere Dinge nutzt, als einfach Grafiken auf dem Bildschirm zu rendern und anzuzeigen.

In dem Artikel, der zu Beginn verlinkt ist, habe ich erklärt, dass SETI @ Home CUDA nutzt, indem es Grafikkarten verwendet, um Berechnungen durchzuführen. Dies ist nur ein Beispiel dafür, wie CUDA verwendet werden kann, um erstaunliche Dinge zu tun. CUDA kann auch verwendet werden, um Video zu transcodieren (konvertieren Sie es von einem Format in ein anderes), indem Sie einen speziellen Codec verwenden, der mit der Hardware kommuniziert. Der Nvidia-Encoder ist als NVENC bekannt und bietet eine leistungsstarke Möglichkeit, Video mithilfe der Grafikkarten-Video-Engine viel schneller zu kodieren, als die CPU zu entlasten. Wenn Sie Entwickler sind und NVENC in Ihr Programm aufnehmen möchten, können Sie hier Nvidias Ressourcen einsehen.

OK, jetzt wissen wir was CUDA ist. Was ist mit CUDA-Kernen?

Ein CUDA-Kern ist ein Segment der GPU, das für die Zwecke von CUDA verwendet werden kann. Es ist das Teil der GPU, das von einigen Überwachungsprogrammen als "Video Engine" bezeichnet wird. Jeder Kern ist ein kleines Stück der gesamten GPU-Architektur, die sowohl für traditionelles 3D-Rendering als auch für CUDA-spezifische Funktionen verwendet werden kann. Bei den meisten Grafikkarten ist die gesamte GPU für CUDA-Arbeit verfügbar. Dies bedeutet, dass die Anzahl der CUDA-Kerne in der GPU tatsächlich definiert, wie viele Kerne die gesamte GPU hat.

Warum haben GPUs so viele Kerne?

Während die heutigen CPUs typischerweise vier bis acht Kerne haben, gibt es Grafikkarten mit über 5.000 Kernen! Warum ist das so, und warum können CPUs nicht so wahnsinnig viele Kerne haben?

Die GPU und die CPU wurden beide für verschiedene Zwecke hergestellt. Während eine CPU auf Maschinencode reagiert, um mit verschiedenen Hardwareteilen auf Ihrem Computer zu kommunizieren, ist die GPU nur für einen bestimmten Zweck gedacht: Sie soll Polygone in die schönen Szenen rendern, die wir in 3D-beschleunigten Umgebungen sehen und dann übersetzen all diese Dinge in ein Bild 60 mal oder mehr pro Sekunde. Das ist eine schwierige Aufgabe für eine CPU, aber da die GPU kompartimentierte Polygon-Prozessoren hat, kann sie die Arbeitslast auf alle ihre Kerne aufteilen, um eine grafische Umgebung innerhalb weniger Millisekunden zu rendern.

Hier kommen die Kerne ins Spiel. Eine GPU benötigt all diese Kerne, um große Aufgaben in kleine Teile aufzuteilen, wobei jeder Kern seinen eigenen Teil der Szene individuell bearbeitet. Anwendungen, die CPUs verwenden (wie Ihr Browser), profitieren nicht von einer so enormen Anzahl von Kernen, es sei denn, jeder Kern hat die Muskelkraft einer ganzen Verarbeitungseinheit. Ihr Browser ist auf schnellen Zugriff auf Informationen angewiesen, im Gegensatz zur Aufgliederung von Aufgaben. Wenn Sie eine Webseite laden oder eine PDF-Datei lesen, benötigen Sie nur einen Verarbeitungs-Stream, um all das zu laden.

Macht mehr RAM eine Videokarte besser?

RAM ist ein bisschen eine seltsame Grauzone mit Videokarten. Während es schön ist, so viel RAM wie möglich zu haben, müssen Sie auch in der Lage sein, all diesen RAM zu verwenden . Eine Grafikkarte mit 1024 MB RAM und einem 192 Bit breiten Bus wird deutlich besser abschneiden als eine Grafikkarte mit 2048 MB RAM und demselben Bus.

Wie ich im vorherigen Teil erklärt habe, wird die 2048 MB Grafikkarte etwas "Bandbreitenengpässe" erfahren, weil der Bus (die Straße, auf der die Daten übertragen werden) nicht breit genug ist, um eine ausreichende Menge an Daten in kurzer Zeit zu übertragen Zeit.

Kurz gesagt, nein, mehr RAM ist nicht unbedingt besser, wenn die Grafikkarte keinen breiten Bus hat. Hier ist mein Leitfaden für die richtige Busbreite: Ihre Grafikkarte sollte maximal die achtfache Menge an RAM in Megabyte als die Anzahl der Bits im Bus haben. Zum Beispiel sollte eine 1024 MB-Karte mindestens einen 128-Bit-Bus haben (1024/8 = 128). Also, für eine 2048 MB-Karte empfehle ich ein Minimum von 256 Bits.

Wenn Sie noch weitere Fragen haben, fragen Sie sie in den Kommentaren unten!