Erstens gibt es manchmal Fälle, in denen ein Treiber-Patch veröffentlicht wird, der die Leistung oder Effizienz einer bestimmten CPU erhöht. Aber offensichtlich stellen Sie diese Frage, weil sie einfach nicht so häufig ist. Das Konzept der CPU-Treiberoptimierungen ist jedoch ähnlich.
Eine GPU ist eine sehr komplizierte Schaltung. Es ist vorhanden, um bestimmte Aufgaben auszulagern, deren Ausführung auf einer CPU sehr lange dauert. Sie erhalten Datensätze und Anweisungen, wie sie mit diesen Daten umgehen sollen. Die GPU muss in der Lage sein, die Daten in einer verwaltbaren Weise anzuordnen und die Anweisungen zu interpretieren, um anzugeben, was zu tun ist. Dann muss es eine Reihe von mathematischen Operationen an den Daten ausführen. Danach müssen die Daten erneut sortiert und die Ergebnisse nach Abschluss an das Betriebssystem zurückgesendet werden. Dies ist eine sehr vereinfachte Beschreibung der Computergrafik-Pipeline . Es müssen mehrere Schritte ausgeführt werden, bevor die Daten für das Programm bereit sind.
Da die GPU nun Befehlssätze akzeptieren und sehr komplizierte mathematische Operationen in der Hardware implementieren muss, gibt es bestimmte Dinge, von denen bekannt ist, dass sie schneller oder langsamer durch diese Pipeline laufen. Beim Schreiben eines Treibers für ein Gerät werden die an das Gerät gesendeten Daten und Anweisungen interpretiert und übersetzt, damit das Gerät sie verstehen kann. Wenn ein Fahrer dies tut, kann er entscheiden, wie die Daten an das Gerät gesendet werden sollen, damit die Aufgaben so schnell wie möglich ausgeführt werden. Ein Fahrer hat jedoch im Allgemeinen nicht viele Informationen darüber, was das Programm, das er bedient, tut. Alles, was es vom Programm erhält, sind die API-Aufrufe ("zeichnen Sie eine Linie", "färben Sie einen Punkt", "schattieren Sie ein Dreieck" usw.). Die Annahmen, die sich daraus ergeben können, sind also nicht sehr gut.
Wenn AMD oder nVidia ein Treiberupdate veröffentlichen, das Leistungsverbesserungen für bestimmte Spiele enthält, bedeutet dies, dass der Treiber erkennt, welches Spiel die Grafikhardware aufruft, und über eine Reihe von fest codierten Annahmen verfügt, die bekannt sind, wie das Spiel ist umgesetzt. Es kann sein, dass das Spiel eine Menge Texturbilder hat, die schnell in den Speicher verschoben werden müssen, oder dass viel Farbe im laufenden Betrieb gemischt wird, um bestimmte Lichteffekte zu erzielen. In der Regel werden in einem Spiel kleine Programme (sogenannte "Shader") implementiert, die beschreiben, wie diese Berechnungen durchgeführt werden, und diese werden zur Ausführung an die GPU gesendet. Wenn der Fahrer weiß, wie das Spiel die Hardware verwendet, kann er die Daten organisieren und Anweisungssätze auswählen, die die gewünschte Aufgabe auf eine Weise ausführen, die den Durchsatz und die Effizienz erhöht.
Manchmal können jedoch nach dem Versand des Produkts in einem Teil der GPU Fehler auftreten. Es mag undurchsichtig genug sein, bei der Validierung des Chips übersehen zu werden, aber es könnte sich herausstellen, dass es in einem bestimmten Spiel, das darauf trifft, zu einem fehlerhaften oder unerwünschten Verhalten (oder sogar zu Abstürzen) kommt. In diesem Fall erkennt der Treiber diesen fehlerhaften Zustand und kann ihn umgehen, indem er entweder Berechnungen auf die CPU-Seite verlagert oder die Art und Weise ändert, in der Daten an die GPU übertragen werden, damit diese nicht in diesen Zustand übergeht. Diese werden wiederum in Form von Treiberupdates veröffentlicht.
Im Grunde ändert sich nicht die Leistung der Hardware selbst, sondern lediglich die Art und Weise, wie die Hardware verwendet wird, damit sie effizienter und schneller mit demselben Datensatz arbeiten kann.