Globale Rezession wegen des Endes des Mooreschen Gesetzes - Seite 7

 
Vladimir:

GPU = Grafikverarbeitungseinheit (hauptsächlich von Nvidia hergestellt)

CPU = zentrale Recheneinheit (hergestellt von Intel oder AMD)

Beide sind Prozessoren. Verstehst du das nicht? Nennen Sie GPU eine Karte oder was immer Sie wollen, aber es ist ein Prozessor mit 3000 Kernen, wenn Sie das neueste Modell haben. Wenn Sie einen Computer mit einem Grafikprozessor haben, lesen Sie in der Dokumentation nach, welches Modell Sie haben und wie viele Kerne es hat.

CPU und GPU sind unterschiedliche CPUs, ich meine CPU.
 
Vladimir:

Keine Melancholie, sondern Angst vor der Zukunft, sowohl meiner eigenen als auch der der anderen...

Warum die Angst? Wo liegt das Problem?

Es wird keine neuen Computer geben, na und? Alles wird so sein, wie es vorher war, und wir werden kein weiteres Windows mit einer nicht mehr transparenten, aber glänzenden Oberfläche sehen, die alle neu hinzugefügten Ressourcen verschlingt.

 
Vladimir:

GPU = Grafikverarbeitungseinheit (hauptsächlich von Nvidia hergestellt)

CPU = Zentraleinheit (hergestellt von Intel oder AMD)

Beide sind Prozessoren. Verstehst du das nicht? Nennen Sie GPU eine Karte oder was immer Sie wollen, aber es ist ein Prozessor mit 3000 Kernen, wenn Sie das neueste Modell haben. Wenn Sie einen Computer mit einem Grafikprozessor haben, lesen Sie in der Dokumentation nach, welches Modell Sie haben und wie viele Kerne es hat.

Apropos CPU. Die Karte kann dies sein, es kann eine einfache Karte sein, und die CPU wird immer noch da sein. Wo sind die CPUs mit 3000 Kernen?
 
Dmitry Fedoseev:
Die Rede ist von der CPU. Eine Karte kann dies sein, eine einfache Karte kann das sein, und es wird immer noch eine CPU geben. Wo sind die CPUs mit 3000 Kernen?
Auch darauf bin ich gespannt.
 
Dmitry Fedoseev:
Die Rede ist von der CPU. Eine Karte kann dies sein, eine einfache Karte kann das sein, und es wird immer noch eine CPU geben. Wo sind die CPUs mit 3000 Kernen?
Ich verstehe nicht, worauf das Argument hinausläuft. Sie haben argumentiert, dass sich die CPUs so entwickelt haben, dass sie mehr Kerne haben. Ich stimme zu und habe ein Beispiel für eine GPU mit 3000 Kernen genannt. Und Sie wollen wissen, warum es keine CPU mit der gleichen Anzahl von Kernen gibt, stimmt's? Und was gefällt Ihnen an GPUs nicht? Die CPU kann die gleiche oder eine andere sein. Wenn Sie viele Kerne benötigen, kaufen Sie einen entsprechenden Grafikprozessor und programmieren Sie darauf. Aber wenn Sie nicht viele Kerne brauchen, dann ist es sinnlos, darüber zu streiten. Meiner Meinung nach wurde die Entwicklung von Prozessoren auf dem Weg zum Multicore in den Jahren 2004-2005 begonnen. Es ist also unwahrscheinlich, dass es nach dem Ende des Mooreschen Gesetzes eine Neuheit sein wird. Wenn Sie jetzt keine Kerne brauchen, werden Sie sie auch nach 2020 nicht mehr brauchen.
 
Vladimir:
Ich verstehe nicht, worauf das Argument abzielt. Sie haben argumentiert, dass sich die Prozessoren durch die Erhöhung der Anzahl der Kerne weiterentwickelt haben. Ich stimme zu und habe ein Beispiel für eine GPU mit 3000 Kernen genannt. Und Sie wollen wissen, warum es keine CPU mit der gleichen Anzahl von Kernen gibt, stimmt's? Und was gefällt Ihnen an GPUs nicht? Die CPU kann die gleiche oder eine andere sein. Wenn Sie viele Kerne benötigen, kaufen Sie einen entsprechenden Grafikprozessor und programmieren Sie darauf. Aber wenn Sie nicht viele Kerne brauchen, dann ist es sinnlos, darüber zu streiten. Meiner Meinung nach wurde die Entwicklung von Prozessoren auf dem Weg zum Multicore in den Jahren 2004-2005 begonnen. Es ist also unwahrscheinlich, dass es nach dem Ende des Mooreschen Gesetzes eine Neuheit sein wird. Wenn Sie jetzt keine Kerne brauchen, werden Sie sie auch nach 2020 nicht mehr brauchen.
Erinnert mich an die Anekdote über das Herausschneiden der Mandeln... ...mit einem Autogen ... durch ein ZP.
 
Dmitry Fedoseev:
Erinnert mich an die Anekdote über das Herausschneiden der Mandeln... mit einem Autogenom ... durch ein zp.

Ist es einfacher, ein Programm für parallele CPU-Kerne als für GPUs zu schreiben? Das Problem ist dasselbe: Der Programmierer muss sich den Kopf zerbrechen und entscheiden, welche Teile eines Programms parallelisiert werden können, speziellen Parallelisierungscode schreiben und so weiter. Die meisten Programmierer leiden nicht darunter und schreiben Single-Core-Programme ohne Umwege. Was ist hier das Problem: Mangel an Kernen oder Programme, die mehrere Kerne verwenden? Ich denke, es ist das Letztere. Selbst wenn ich Ihnen eine CPU mit 3000 Kernen gebe, werden Sie immer noch Programme für einen Kern schreiben, da es keinen Unterschied in der Schwierigkeit gibt, Programme für 3000 Kerne und für 4 Kerne zu schreiben. Benötigt wird ein neuer Compiler, der automatisch erkennen kann, welche Teile des Codes parallelisiert werden können. Aber auch hier hängt der Fortschritt bei der Entwicklung eines solchen Compilers nicht von der Hardware ab, sondern von der Bereitschaft der Programmierer, einen solchen Compiler zu schreiben. Ich behaupte in diesem Thread, dass die Möglichkeit, nach 2020 neue Hardware zu entwickeln, aufgrund der Fortschritte in der Halbleitertechnologie und der Verringerung der Größe und des Stromverbrauchs von Transistoren immer geringer wird. Neue Materialien und Transistoren sind noch in weiter Ferne. Intel hat 2016 versucht, die Knight Hill-Prozessorgeneration auf Basis der 10-nm-Technologie zu entwickeln, und hat diese Generation auf Ende 2017 verschoben. Auch Samsung hat Probleme mit seiner 10nm-Technologie für seine App-Prozessoren. Bereits bei einer Größe von 10 nm bieten die Transistoren im Vergleich zu 14 nm nur eine geringe Verringerung von Größe und Leistung. Die Wärmeableitung wird zu einem großen Problem. Es bedarf eines Technologiesprungs. Einer der Indikatoren für Technologie ist der Preis pro Transistor. Der Preis fiel also vor 28 nm, und danach begann er exponentiell zu steigen. Viele Unternehmen haben wegen des Preises bei 28nm aufgehört. Die Fortschritte bei der 10nm-Technologie und bei der 7nm- und 5nm-Technologie werden also nicht nur mit Wärmeproblemen, sondern auch mit hohen Preisen einhergehen.

 
Jetzt gibt es kein Problem mehr bei der Parallelisierung, sondern nur noch bei der Verwendung einer CPU. In C# ist dies in 3 Sekunden erledigt. Vielmehr geht es darum, dass es keinen Bedarf an einer großen Anzahl von Kernen gibt. Ein gewöhnliches, durchschnittliches Programm ist nicht viel zu parallelisieren. Wenn wir viele Kerne verwenden, besteht der einzige Vorteil darin, dass viele verschiedene Programme ausgeführt werden können, aber das ist nicht wirklich notwendig.
 
Vladimir:

Ist es einfacher, ein Programm für parallele CPU-Kerne zu schreiben als für GPUs?

Es ist wirklich schwer, effiziente Programme für GPUs zu schreiben.

In der Tat gibt es noch ein ganzes ungenutztes Gebiet, was die Interaktion zwischen Geräten und zwischen Geräten und Menschen angeht.

Es gibt den Bereich der Clouds, in die alles und jeder hineingestopft wird, die Dezentralisierung

Es gibt den Bereich der intelligenten Assistenten und Geräte im Allgemeinen.

Es gibt den Bereich der erweiterten und virtuellen Realität.

Kurz gesagt, gerade wegen des Moore'schen Gesetzes wird es keine Rezession geben, sondern eine Suche nach neuen Wegen der Entwicklung. Es wird aus einem anderen Grund eine Rezession geben

 
Vladimir:

Ist es einfacher, ein Programm für parallele CPU-Kerne als für GPUs zu schreiben? Das Problem ist dasselbe: Der Programmierer muss sich den Kopf zerbrechen und entscheiden, welche Teile eines Programms parallelisiert werden können, speziellen Parallelisierungscode schreiben und so weiter. Die meisten Programmierer leiden nicht darunter und schreiben Single-Core-Programme ohne Umwege. Was ist hier das Problem: ein Mangel an Kernen oder Programme, die mehrere Kerne verwenden? Ich denke, es ist das Letztere. Selbst wenn ich Ihnen eine CPU mit 3000 Kernen gebe, werden Sie immer noch Programme für einen Kern schreiben, da es keinen Unterschied in der Schwierigkeit gibt, Programme für 3000 Kerne und für 4 Kerne zu schreiben. Was wir brauchen, ist ein neuer Compiler, der automatisch erkennen kann, welche Codestücke parallelisiert werden können. Aber auch hier hängt der Fortschritt bei der Erstellung eines solchen Compilers nicht von der Hardware ab, sondern von dem Wunsch der Programmierer, diesen Compiler zu schreiben.

R hat die beschriebenen Probleme nicht.

1. Wahrscheinlich ist es nicht nötig, Programme für rechenintensive Algorithmen zu schreiben. Alles ist geschrieben, und wenn ein rechenintensiver Algorithmus (z. B. Optimierung oder Boosting) Parallelität zulässt, ist dies bereits implementiert. Und Sie müssen nicht irgendwo danach suchen. Ein Entwickler geht vom Inhalt des Problems aus und passt das Werkzeug an diesen Inhalt an, und alles wird im Werkzeug maximal umgesetzt. Das Tool verfügt über ein sehr leistungsfähiges Hilfesystem, das die Arbeit mit dem Tool vereinfachen soll.

2. Wenn Sie z.B. Abschnitte einer Schleife parallel ausführen müssen, stehen Ihnen Parallelisierungswerkzeuge zur Verfügung. Bei der Beschreibung der Syntax solcher Konstruktionen und der Bedingungen für ihre Verwendung brauchen Sie keine Zeit zu verlieren.

3. Das Programm kann nicht nur den Kern des gegebenen Computers, sondern auch benachbarte Computer laden. Dies geschieht sozusagen ohne Wolken aus verfügbaren Computern.

Die Probleme, die Sie beschrieben haben, sind darauf zurückzuführen, dass Sie vom Eisen über universelle algorithmische Sprachen gehen und das Problem nicht erreichen. Wenn Sie den umgekehrten Weg gehen - vom Problem zur Wahl des Werkzeugs - müssen Sie vielleicht gar nicht über die Hardware sprechen.

Deshalb wiederhole ich die Schlussfolgerung, die ich oben gezogen habe: All diese Gigahertz haben sehr wenig Bezug zur Effizienz der Programmausführung. So wie wir in den letzten 15 Jahren die Zunahme der Gigahertz nicht bemerkt haben, werden wir auch nicht bemerken, dass genau diese Gigahertz nicht mehr wachsen.

Grund der Beschwerde: