Shoryuken94 schrieb:
2. Das weiß keiner so wirklich. Nvidia sagt, dass die Tensorcores dafür genutzt werden, allerdings so rein von der Funktionsweise sollte es theoretisch auch mit Pascal gehen. Die eigentliche Optimierung findet ja bei Nvidia auf den Servern statt. Die entsprechenden Profile müssten theoretisch auch auf Pascal laufen, aber da muss man sich keine Hoffnung machen bei Nvidia
die Tensor Cores sind ja speziell dafür da das neurale Netzwerk auszuführen. Das hat mit Nvidias Berechnung rein gar nichts zu tun. Man muss schon ein gewisses Grundverständnis von Deep Learning haben um die Sache zu verstehen...
Ein Neurales Netzwerk besteht quasi erstmal nur aus Knoten + Verbindungen zwischen diesen (wie Gehirnzellen auch), diese Verbindungen haben Gewichtungen. Allein über diese Gewichtungen sind also manche Verbindungen stärker, manche schwächer. Man definiert was den Eingang darstellt, zB die Bildpixel der letzten zwei Bilder (um noch ne zeitliche Komponente zu haben), jagt diese Werte durch ein statisch aufgesetztes Wert von Matrizen (die davor von Nvidia asynchron errechnet wurden) und erhält dann einen Output der zB das AA 8/ Upscaling steuert, für Bildbereiche (also zb Kanten glättet, Texturen aber nicht damit diese scharf bleiben).
Bei den Tensor Cores geht es darum eben dieses statische Matrizen Konstrukt möglichst schnell zu multiplizieren, also den Vektor den ein Eingangswert durch das Neuronale Netzwerk nimmt. (so habs ich verstanden).
Das geht wie die meisten Rechenoperatione, Raytracing oder beliebig andere Operationen auch, natürlich mit einem Fallback, nur eben deutlich langsamer. Eventuell zu langsam um dann hier einzusetzen.
Alternativ könnte man zB das Final Fantasy Netzwerk in Hardware gießen, als eigener Chip. Das wäre dann nochmal schneller als Tensor Kerne die ja flexibel und zugleich fix sind.
Es geht einfach darum diese Rechnung schnell zu erledigen, sodass du ausgehend vom aktuellen Bild schnell auf das nächste kommst (die geupscalte Variante). Und das können in erster Linie Tensor Kerne hinreichend schnell.
1:1 läuft die Sache beim Entrauschen im Raytacing Fall. Hier rechnet Nvidia offline Raytracing Bilder mit hoher Auflösung und wenig Rauschen. Das mag dann 5 min / Bild brauchen. Dann braucht man einen statischen Algorithmus der den Fehler in einen Wert fasst. Also den Fehler "rauschendes Bild ohne Denoise vs korrektes Bild, rauschfrei". Das macht man 1 mio mal, jedes mal passt man die Gewichtungen im Neuronalen Netzwerk minimal an und versucht den Fehlerwert zu minimieren. Dadurch lernt diesen Set aus "Nervenzellen" ohne konkrete Programmierung wie das entrauschte Bild auszusehen hat. Oder eben bei Google wie ein Baum aussieht.
Am Ende vom Tag schiebt man dann nur noch das rauschende Bild "in die Tensor Cores" und hinten purzelt ein nahezu rausch-freies Bild raus, ohne dass man sich darüber nen Kopf macht was dazwischen alles passiert.