Zusammenfassung der Deep-Learning-Begriffe

SPMD

SPMD (Single Program, Multiple Data) ist ein Modell der parallelen Programmierung. Die Grundidee besteht darin, dasselbe Programm parallel auf mehreren Prozessoren auszuführen, wobei jedoch jeder Prozessor bei der Ausführung des Programms unterschiedliche Daten verarbeitet. Zu seinen Hauptmerkmalen gehören:

  • Einzelprogramm: Alle Prozessoren führen den gleichen Programmcode aus, der Arbeitsteil ist jedoch durch bedingte Beurteilungen usw. verzweigt.
  • Multi-Data: Jeder Prozessor verarbeitet unterschiedliche Daten und erreicht so eine parallele Datenverarbeitung.
  • Datenparallelität: Daten werden auf verschiedene Prozessoren verteilt und Rechenprobleme werden durch Datenparallelität parallel verarbeitet.
  • Synchrone Kommunikation: Prozessoren koordinieren ihre Arbeit durch Synchronisation und Kommunikation, beispielsweise durch Barrierensynchronisation.

Im SPMD-Modus wird dasselbe Programm auf verschiedene Prozessoren kopiert und deren Daten werden anhand der Prozess-/Thread-ID unterschieden. Programmierer schreiben hauptsächlich seriellen Code, und Compiler und Laufzeitsysteme sind für die Generierung von parallel ausgeführtem Code verantwortlich.

SPMD eignet sich besser für datenparallele Anwendungen, z. B. die Verarbeitung großer Matrizen, physikalischer Simulationen und anderer wissenschaftlicher Berechnungen. MPI ist ein typisches paralleles Programmierframework im SPMD-Modus.

Im Gegensatz zu SPMD können parallele Aufgaben im Rahmen des MPMD-Modells (Multiple Program, Multiple Data) unterschiedliche Programme ausführen. Die Struktur des SPMD-Programms ist einfacher, aber MPMD ist flexibler.

Kurz gesagt ist SPMD ein wichtiges Modell der parallelen Programmierung, und sein Verständnis hilft beim Schreiben paralleler Anwendungen.

Riesiger Seitenspeicher

Der von der GPU verwendete große Seitenspeicher bezieht sich auf den Teil des CPU-Hauptspeichers, der der GPU zugeordnet ist. Er verwendet Systemspeicher, nicht GPU-Videospeicher. Das Aktivieren eines großen Seitenspeichers ändert nur den Paging-Mechanismus des CPU-Speichers und belegt keinen zusätzlichen Videospeicher.

Ruf zurück

Die Idee des -Callbacks besteht darin, eine Funktion als Parameter an eine andere Funktion zu übergeben, sodass die Parameter innerhalb dieser Funktion aufgerufen werden können bei Bedarf Funktion. Dies ermöglicht asynchrone Programmierung und ermöglicht außerdem eine hochgradig anpassbare und flexible Codelogik.

Kette

Auf NVIDIA-GPUs ist die kleinste Einheit der AufgabenplanungWarp

Ein Warp besteht aus32 Threads als Gruppe, daher ist die Matrix in 8*4 Blöcke unterteilt. Jeder Block Es gibt Insgesamt 32 Standorte

Dadurch wird sichergestellt, dass jeder Block beim Hochladen auf SM nicht mit anderen Blöcken und Threads gespleißt werden muss, was zu zusätzlichem Overhead führt.

Beachten Sie, dass ich hier Position und nicht Element verwende. Es gibt 32 Threads, jeder Thread ist für die Berechnung einer Position verantwortlich.

GMEM, SMEM und SM

GMEM: Global Memory ist ein Speicherbereich auf der GPU, der füralle CUDA-Threads sichtbar ist und sich auf der Geräteseite befindet. Die Datenübertragungsgeschwindigkeiten sind relativ langsam, es können jedoch große Datenmengen gespeichert werden.
SMEM: Shared Memory ist ein kleiner Teil des Speichers, der sich auf jedem SM befindet und auf den nur Thread-Blöcke auf demselben SM zugreifen können. Es ist schnell, hat aber eine begrenzte Kapazität. Wird für die Datenfreigabe innerhalbThread-Blöcken verwendet.
SM: Streaming-Multiprozessor, der die Recheneinheit der GPU-Hardware ist. , jeder SM enthält Mehrere CUDA-Kerne und gemeinsamer Speicher. Auf einem GPU-Chip sind mehrere SMs integriert.

GMEM wird von der gesamten GPU gemeinsam genutzt, mit großer Kapazität und langsamer Geschwindigkeit;
SMEM wird innerhalb von SM gemeinsam genutzt, mit geringer Kapazität und hoher Geschwindigkeit;
SM gehört zur GPU. Die Recheneinheit umfasst SMEM- und CUDA-Kerne.
—————————————————————————————
In CUDA Beim Programmieren kann die rationelle Nutzung verschiedener Speicherebenen die Programmleistung erheblich optimieren.

Entsorgen

Bezieht sich auf den Vorgang des Exportierens und Speicherns von Modellen oder Daten in einem bestimmten Format.

Im Einzelnen kann dump op folgende Bedeutung haben:

  • Der Vorgang des Exportierens und Speicherns der Parameter des Modells (Variablen, Gewichte usw.) wird als Modell-Dump oder Parameter-Dump abgekürzt. Auf diese Weise können Sie das trainierte Modell für die Bereitstellung speichern oder das Training fortsetzen.
  • Exportieren und speichern Sie die Zwischendaten (Tensor- oder Feature-Map usw.) während des Trainings- oder Vorhersageprozesses, um die Interna der zu analysieren Modelldarstellung, Debugging von Modellen usw. Dies wird als Daten-Dump oder Feature-Dump bezeichnet.
  • Der Vorgang des Speicherns von Trainings- und Debugging-Informationen wie Protokollen und Indikatoren in einer Datei zur späteren Anzeige und Analyse wird als Protokolldump bezeichnet.
  • Exportieren Sie das Berechnungsdiagramm oder die Netzwerkstruktur des Modells Der Vorgang des Speicherns, damit die Modellstruktur visualisiert werden kann, wird als Graph-Dump oder Modell-Dump bezeichnet.
  • Die Ausgabe von Operationen wie tf.py_func in TensorFlow mussan die CPU ausgegeben werden, was ebenfalls eine übliche Dump-Operation ist.
  • Im verteilten Training muss der Dump aufgrund von Speicherbeschränkungen regelmäßig durchgeführt werdenZwischenergebnisse auf die Festplatte schreiben, auch < genannt /span>. Verteilter Dump

Zusammenfassend lässt sich sagen, dass Dump eine sehr häufige und wichtige Operation im Bereich des maschinellen Lernens ist und zum Exportieren und Speichern verschiedener Informationen verwendet wird, um die Modellanalyse, Bereitstellung und Fehlerbehebung zu erleichtern.

Form

2-dimensionale Array-Form: (N, D), was das ND-Format angibt
3-dimensionale Array-Form: (N, H, W), was das NHW-Format angibt
4-dimensionale Array-Form: (N, C, H, W), Angabe des NCHW-Formats
5-dimensionale Array-Form: (N, C, D, H, W) , was das NCDHW-Format angibt

n – Batchgröße (Buchmenge)

Guess you like

Origin blog.csdn.net/weixin_44659309/article/details/134388498