DE112021003077T5 - Technik zur Durchführung der Architektursuche für neuronale Netzwerke mit föderiertem Lernen - Google Patents

Technik zur Durchführung der Architektursuche für neuronale Netzwerke mit föderiertem Lernen Download PDF

Info

Publication number
DE112021003077T5
DE112021003077T5 DE112021003077.9T DE112021003077T DE112021003077T5 DE 112021003077 T5 DE112021003077 T5 DE 112021003077T5 DE 112021003077 T DE112021003077 T DE 112021003077T DE 112021003077 T5 DE112021003077 T5 DE 112021003077T5
Authority
DE
Germany
Prior art keywords
neural network
data point
network
computer systems
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021003077.9T
Other languages
English (en)
Inventor
Holger Reinhard Roth
Dong Yang
Wenqi Li
Andriy Myronenko
Wentao Zhu
Ziyue Xu
Xiaosong Wang
Daguang Xu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE112021003077T5 publication Critical patent/DE112021003077T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/69Microscopic objects, e.g. biological cells or cellular parts
    • G06V20/695Preprocessing, e.g. image segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

Vorrichtungen, Systeme und Techniken zum Auswählen einer neuronalen Netzwerkarchitektur aus einer Vielzahl von neuronalen Netzwerken in einer föderierten Lern(FL)-Umgebung. In mindestens einer Ausführungsform wird ein neuronales Netzwerk trainiert, indem Trainingsergebnisse von unterschiedlichen FL-Computersystemen kombiniert werden, wobei jedes der unterschiedlichen FL-Computersysteme beispielsweise unterschiedliche Teile des neuronalen Netzwerks trainiert.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anwendung beansprucht die Priorität der US-Patentanmeldung Nr. 16/889,652 mit dem Titel „TECHNIK ZUM DURCHFÜHREN EINER ARCHITEKTURSUCHE FÜR NEURONALE NETZWERKE MIT FÖDERIERTEM LERNEN“, die am 1. Juni 2020 eingereicht wurde und deren gesamter Inhalt durch Bezugnahme in vollem Umfang und für alle Zwecke hierin aufgenommen ist.
  • TECHNISCHES GEBIET
  • Mindestens eine Ausführungsform bezieht sich auf die Verwendung unterschiedlicher Computersysteme, um einen Teil eines neuronalen Netzwerks in einer föderierten Lern(FL)-Umgebung zu trainieren. Zum Beispiel betrifft mindestens eine Ausführungsform das Bewirken, dass unterschiedliche Teile eines neuronalen Netzwerks an jedem unterschiedlichen Computersystem trainiert werden, und Ergebnisse von jedem dieser unterschiedlichen Computersysteme, die unterschiedliche Teile trainieren, werden kombiniert, um das neuronale Netzwerk zu trainieren.
  • ALLGEMEINER STAND DER TECHNIK
  • Das Trainieren eines neuronalen Netzwerks, das von mehreren Clients gemeinsam genutzt wird, kann aufgrund von Datenschutzbedenken eine Herausforderung darstellen. Beispielsweise können Trainingsdaten medizinische Bildgebungsdaten umfassen, die für Einzelpersonen spezifisch sind. Darüber hinaus kann die Anwendung statischer neuronaler Netzwerke auf unbekannte Eingaben zu Dateninkonsistenzen führen, wenn Rückschlüsse gezogen werden. In mindestens einer Ausführungsform wird die Leistung von neuronalen Netzwerken verbessert, indem für jeden Client ein neuronales Netzwerk aufgebaut wird, das spezifisch für die gefolgerte Eingabe ist.
  • Figurenliste
    • 1 veranschaulicht ein Diagramm, in dem verschiedene Teile eines neuronalen Netzwerks in einer föderierten Lern(FL)-Umgebung trainiert werden, gemäß mindestens einer Ausführungsform;
    • 2 veranschaulicht ein Diagramm, in dem ein neuronales Netzwerk für eine Eingabe in einer föderierten Lern(FL)-Umgebung bestimmt wird, gemäß mindestens einer Ausführungsform;
    • 3 veranschaulicht ein Diagramm eines allgemeinen Frameworks darüber, wie ein neuronales Netzwerk für eine Eingabe an einem Client-Standort für föderiertes Lernen (FL) ausgewählt wird, gemäß mindestens einer Ausführungsform;
    • 4 veranschaulicht ein Diagramm eines abgetasteten Pfads zum Bilden eines neuronalen Netzwerks in einer föderierten Lern(FL)-Umgebung gemäß mindestens einer Ausführungsform;
    • 5 veranschaulicht einen Prozess zum Aufbauen eines Teilnetzwerks für eine Eingabe an einem Client-Standort für föderiertes Lernen (FL) gemäß mindestens einer Ausführungsform;
    • 6 veranschaulicht einen Prozess zum Verwenden von Informationen aus dem Inferenzieren einer Eingabe zum Auswählen eines neuronalen Netzwerks an jedem Client-Standort für föderiertes Lernen (FL) gemäß mindestens einer Ausführungsform;
    • 7 veranschaulicht einen Prozess zum Verwenden von Informationen aus dem Inferenzieren einer Eingabe zum Auswählen eines unterschiedlichen neuronalen Netzwerks an einem Client-Standort für föderiertes Lernen (FL) gemäß mindestens einer Ausführungsform;
    • 8 veranschaulicht ein Diagramm experimenteller Ergebnisse aus der Implementierung der Auswahl eines neuronalen Netzwerks für zu folgernde Informationen in einer föderierten Lern(FL)-Umgebung gemäß mindestens einer Ausführungsform;
    • 9A veranschaulicht Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform;
    • 9B veranschaulicht Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform;
    • 10 veranschaulicht das Training und den Einsatz eines neuronalen Netzwerks gemäß mindestens einer Ausführungsform;
    • 11 veranschaulicht ein beispielhaftes Rechenzentrumssystem gemäß mindestens einer Ausführungsform;
    • 12A veranschaulicht ein Beispiel für ein autonomes Fahrzeug gemäß mindestens einer Ausführungsform;
    • 12B veranschaulicht ein Beispiel für Kamerastandorte und Sichtfelder für das autonome Fahrzeug aus 12A gemäß mindestens einer Ausführungsform;
    • 12C ist ein Blockdiagramm, das eine beispielhafte Systemarchitektur für das autonome Fahrzeug aus 12A veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 12D ist eine Darstellung, die ein System zur Kommunikation zwischen cloudbasierten Server(n) und dem autonomen Fahrzeug aus 12A veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 13 ist ein Blockdiagramm, das ein Computersystem veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 14 ist ein Blockdiagramm, das ein Computersystem veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 15 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 16 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 17A veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 17B veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 17C veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 17D veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 17E und 17F veranschaulichen ein gemeinsam genutztes Programmiermodell gemäß mindestens einer Ausführungsform;
    • 18 veranschaulicht beispielhafte integrierte Schaltungen und zugehörige Grafikprozessoren gemäß mindestens einer Ausführungsform;
    • 19A und 19B veranschaulichen beispielhafte integrierte Schaltungen und zugehörige Grafikprozessoren gemäß mindestens einer Ausführungsform;
    • 20A und 20B veranschaulichen zusätzliche beispielhafte Grafikprozessorlogik gemäß mindestens einer Ausführungsform;
    • 21 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 22A veranschaulicht einen Parallelprozessor gemäß mindestens einer Ausführungsform;
    • 22B veranschaulicht eine Partitionseinheit gemäß mindestens einer Ausführungsform;
    • 22C veranschaulicht einen Verarbeitungscluster gemäß mindestens einer Ausführungsform;
    • 22D veranschaulicht einen Grafik-Multiprozessor gemäß mindestens einer Ausführungsform;
    • 23 veranschaulicht ein System mit mehreren Grafikverarbeitungseinheiten (graphics processing unit - GPU) gemäß mindestens einer Ausführungsform;
    • 24 veranschaulicht einen Grafikprozessor gemäß mindestens einer Ausführungsform;
    • 25 ist ein Blockdiagramm, das eine Prozessor-Mikroarchitektur für einen Prozessor veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 26 veranschaulicht einen Deep-Learning-Anwendungsprozessor gemäß mindestens einer Ausführungsform;
    • 27 ist ein Blockdiagramm, das einen beispielhaften neuromorphen Prozessor veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 28 veranschaulicht mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen;
    • 29 veranschaulicht mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen;
    • 30 veranschaulicht mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen;
    • 31 ist ein Blockdiagramm einer Grafikverarbeitungs-Engine eines Grafikprozessors gemäß mindestens einer Ausführungsform;
    • 32 ist ein Blockdiagramm von mindestens Abschnitten eines Grafikprozessorkerns gemäß mindestens einer Ausführungsform;
    • 33A und 33B veranschaulichen Thread-Ausführungslogik, die ein Array von Verarbeitungselementen eines Grafikprozessorkerns beinhaltet, gemäß mindestens einer Ausführungsform;
    • 34 veranschaulicht eine Parallelverarbeitungseinheit (parallel processing unit - „PPU“) gemäß mindestens einer Ausführungsform;
    • 35 veranschaulicht einen Universalverarbeitungscluster (general processing cluster - „GPC“) gemäß mindestens einer Ausführungsform;
    • 36 veranschaulicht eine Speicherpartitionseinheit einer Parallelverarbeitungseinheit („PPU“) gemäß mindestens einer Ausführungsform;
    • 37 veranschaulicht einen Streaming-Multiprozessor gemäß mindestens einer Ausführungsform.
    • 38 ist ein beispielhaftes Datenablaufdiagramm für eine weiterentwickelte Rechenpipeline gemäß mindestens einer Ausführungsform;
    • 39 ist eine Systemdarstellung für ein beispielhaftes System zum Trainieren, Anpassen, Instanziieren und Einsetzen von Modellen des maschinellen Lernens in einer weiterentwickelten Rechenpipeline gemäß mindestens einer Ausführungsform;
    • 40 beinhaltet eine beispielhafte Veranschaulichung einer weiterentwickelten Rechenpipeline 3910A zum Verarbeiten von Bildgebungsdaten gemäß mindestens einer Ausführungsform;
    • 41A beinhaltet ein beispielhaftes Datenablaufdiagramm eines virtuellen Instruments, das eine Ultraschallvorrichtung unterstützt, gemäß mindestens einer Ausführungsform;
    • 41B beinhaltet ein beispielhaftes Datenablaufdiagramm eines virtuellen Instruments, das einen CT-Scanner unterstützt, gemäß mindestens einer Ausführungsform;
    • 42A veranschaulicht ein Datenablaufdiagramm für einen Prozess zum Trainieren eines Modells des maschinellen Lernens gemäß mindestens einer Ausführungsform; und
    • 42B ist eine beispielhafte Veranschaulichung einer Client-Server-Architektur zum Erweitern von Annotationswerkzeugen mit vorab trainierten Annotationsmodellen gemäß mindestens einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • In mindestens einer Ausführungsform werden gemäß dieser Offenbarung implementierte Systeme und Verfahren verwendet, um ein neuronales Netzwerk zu trainieren, indem Trainingsergebnisse von unterschiedlichen Computersystemen kombiniert werden, die unterschiedliche Teile eines neuronalen Netzwerks trainieren. In mindestens einer Ausführungsform wird föderiertes Lernen (FL) in Kombination mit dem dynamischen Auswählen eines neuronalen Netzwerks aus einer Vielzahl von neuronalen Netzwerken unter Verwendung von Informationen verwendet, die von mindestens einem einer Vielzahl von neuronalen Netzwerken gefolgert werden sollen. In mindestens einer Ausführungsform wird ein neuronales Netzwerk an jedem Computersystem von FL-Clients für eine zu folgernde Eingabe (z. B. ein Bild) ausgewählt.
  • In mindestens einer Ausführungsform sind hierin beschriebene Techniken so anwendbar, dass ein neuronales Netzwerk aus einer Vielzahl von neuronalen Netzwerken für ein Bild und insbesondere für ein medizinisches Bild ausgewählt wird; hierin beschriebene Techniken sind jedoch auch auf andere Eingabetypen anwendbar (nicht einschränkende Beispiele umfassen Video, ganze Zahlen, Audio oder Zeichen), die durch neuronale Netzwerke gefolgert werden. Die medizinische Bildgebung wird an mehreren Orten durchgeführt (z. B. in einem Krankenhaus, einer Klinik, und/oder Bildgebungszentrum), von denen mehrere über eine eigene Abtastungs-/Bildgebungsausrüstung verfügen, wie eine Magnetresonanztomographie(MRT)-Maschine, Computertomographie(CT)-Maschine, Positions-Emissions-Tomographie (PET), Röntgen, Ultraschall, Elastographie und Echokardiographie usw. Diese Orte haben eine Abtastungs-/Bildgebungsausrüstung und/oder Verfahren, die von Ort zu Ort unterschiedlich sein können, was in der Regel zu Dateninkonsistenzen führt, wie zum Beispiel von Scannern verschiedener Anbieter, uneinheitlichen Abtastungsprotokollen, Anatomieunterschieden unter Populationen, bei der Bildgebung eingeführten Artifakten, einer Veränderung, die durch menschliche Beteiligung an einem Abtastprozess hervorgerufen wird, und sonstigen damit verbundenen Faktoren. Die Inkonsistenz von Bilddaten verursacht Schwierigkeiten bei der rechnerischen Verarbeitung oder Bereitstellung von Modellen für maschinelles Lernen, wenn unbekannte Daten vorliegen. Beispielsweise besteht eine große Varianz des Erscheinungsbilds zwischen einer regulären dreidimensionalen (3D) T2-gewichteten Gehirn-MRT aus verschiedenen Institutionen und Krankenhäusern, und im Allgemeinen kann die Leistung von Modellen für maschinelles Lernen erheblich herabgestuft werden, wenn sie in unbekannten Bilddomänen eingesetzt werden. Darüber hinaus erfordert das Erstellen robuster, auf Deep Learning (DL) basierender Modelle große Mengen an Trainingsdaten. Oft können diese Datensätze aufgrund von Datenschutzbedenken oder regulatorischen Hürden nicht einfach kombiniert werden, insbesondere wenn es sich um medizinische Daten handelt. Das heißt, Krankenhäuser und andere medizinische Institute müssen häufig zusammenarbeiten und zentralisierte Datenbanken für die Entwicklung von DL-Modellen für klinische Zwecke hosten. Dies kann aufgrund des Datenschutzes und verschiedener ethischer Bedenken im Zusammenhang mit der gemeinsamen Nutzung von Daten im Gesundheitswesen sehr schwierig werden.
  • In mindestens einer Ausführungsform sind zur Verbesserung von Bilddateninkonsistenzen während der Rechenverarbeitung und zur Bekämpfung von Datenfreigabe- und Datenschutzproblemen hierin beschriebene Techniken anwendbar, so dass föderiertes Lernen (FL) mit der dynamischen Auswahl eines für ein Bild spezifischen neuronalen Netzwerks kombiniert wird. In mindestens einer Ausführungsform erzeugt ein Prozessor mit einer oder mehreren Schaltungen ein Supernetz, das auch als Supernetzwerk oder neuronales Netzwerk bezeichnet werden kann, das eine Vielzahl von neuronalen Netzwerken umfasst, um es einer Mischung von parallelen Kandidatenmodulen zu ermöglichen, jeweils Mehrfachskalenerscheinungsmerkmale auf unterschiedlichen Netzwerkebenen zu repräsentieren. In mindestens einer Ausführungsform führt ein Prozessor eine Supernetz-Trainingsstrategie aus, die in einer FL-Umgebung durchgeführt wird. In mindestens einer Ausführungsform ist FL konfiguriert, um Modellgradienten nach einer lokalen Trainingsrunde an jedem Standort eines FL-Clients an einen zentralisierten Server zu übermitteln, der Ergebnisse aggregiert und eine nächste FL-Runde startet. In mindestens einer Ausführungsform veranlassen ein oder mehrere Prozessoren an jedem einzelnen FL-Client-Standort, dass ein neuronales Netzwerk speziell für ein Bild ausgewählt wird. In mindestens einer Ausführungsform verwenden ein oder mehrere Prozessoren an jedem FL-Client-Standort dann ein ausgewähltes neuronales Netzwerk, um einen Teil des Supernetzes entsprechend zu trainieren.
  • In mindestens einer Ausführungsform wählen, sobald ein Supernetz ausreichend trainiert wurde, ein oder mehrere Prozessoren an jedem FL-Client-Standort ein neuronales Netzwerk aus. In mindestens einer Ausführungsform ist ein ausgewähltes neuronales Netzwerk ein optimales neuronales Netzwerk, das auch als Teilnetzwerk bezeichnet werden kann, mit einem besten Pfad, der aus einer Vielzahl von neuronalen Netzwerken ausgewählt wird. In mindestens einer Ausführungsform bestimmen ein oder mehrere Prozessoren für jeden unsichtbaren Datenpunkt an jedem FL-Client-Standort unter Anleitung zusätzlicher nicht überwachter Verlustfunktionen bei der Inferenz, welches neuronale Netzwerk als Teilnetzwerk auszuwählen ist. In mindestens einer Ausführungsform wird jede Domäne oder sogar jede Eingabe während des Einsatzes mit einem bestimmten neuronalen Netzwerk verknüpft. In mindestens einer Ausführungsform ist im Vergleich zu einem Supernetz eine Merkmalsdarstellung aus einem Teilnetzwerk besser geeignet für unterschiedliche Eingaben. In mindestens einer Ausführungsform wird die Übertragbarkeit von neuronalen Netzwerkmodellen erhöht, wenn unsichtbare Eingaben verarbeitet werden.
  • In mindestens einer Ausführungsform umfasst das Supernetz eine Vielzahl von neuronalen Netzwerkmodellen, wobei jedes dieser neuronalen Netzwerkmodelle gemäß Eingaben oder Domänen für medizinische 3D-Bildsegmentierungsaufgaben angepasst ist. In mindestens einer Ausführungsform stellen ein oder mehrere Prozessoren an einem Client-Server jedem FL-Client-Standort ein Supernetz bereit, um die Darstellungskapazitäten in mehreren Maßstäben zu erhöhen, und ferner wird für jede Eingabe an jedem FL-Client-Standort ein Teilnetzwerk basierend auf der Rekonstruktionsgenauigkeit bei der Inferenz bestimmt.
  • 1 veranschaulicht ein Diagramm 100, in dem verschiedene Teile eines neuronalen Netzwerks 104 in einer föderierten Lern(FL)-Umgebung trainiert werden, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform stellt ein Prozessor mit einer oder mehreren Schaltungen, die dem Client-Server 102 zugeordnet sind, das neuronale Netzwerk 104 für eine Vielzahl von Clients bereit. In mindestens einer Ausführungsform ist das neuronale Netzwerk 104 ein Supernetz, das auch als Supernetzwerk, Modellarchitektur, bezeichnet werden kann, und/oder ein neuronales Netzwerk, das eine Vielzahl von neuronalen Netzwerken umfasst. In mindestens einer Ausführungsform sind Client A 106 und Client B 108 in einer föderierten Lern(FL)-Umgebung über ein Netzwerk mit einem Client-Server 102 verbunden oder kommunizieren mit ihm. In mindestens einer Ausführungsform kommunizieren verschiedene Komponenten, die in dem Diagramm 100 veranschaulicht sind, unter Verwendung beliebiger einer Vielzahl unterschiedlicher Netzwerkarten, einschließlich, aber nicht beschränkt auf, lokale Netzwerke (local area networks - LANs) und/oder Weitverkehrsnetzwerke (wide area networks - WANs), über drahtgebundene und/oder drahtlose Kommunikationsprotokolle miteinander und untereinander. In mindestens einer Ausführungsform werden die unterschiedlichen Arten von Netzwerken in Bezug auf 39 weiter unten genauer beschrieben. In mindestens einer Ausführungsform sind Client A 106 und/oder Client B 108 ein FL-Client-Standort. In mindestens einer Ausführungsform sind mehr als zwei Clients mit dem Client-Server 102 verbunden (da das Vorhandensein von zwei Clients in 1 nur zu Veranschaulichungszwecken dient und hierin beschriebene Techniken mehr als zwei Clients verwenden können). In mindestens einer Ausführungsform umfasst jeder Client 106, 108 ein oder mehrere Computergeräte, die von einem Benutzer übermittelte Anweisungen ausführen und/oder gemäß Anweisungen, die durch einen automatisierten Prozess übermittelt werden. In mindestens einer Ausführungsform trainiert jeder Client 106, 108 das Supernetz 104 lokal unter Verwendung der Datenpunkte 110, 116. In mindestens einer Ausführungsform sind die Datenpunkte 110, 116 jeweils einzigartig für Client A 106 und Client B 108. In mindestens einer Ausführungsform werden die Datenpunkte 110, 116 nicht mit dem Client-Server 102 untereinander und anderen Clients geteilt. In mindestens einer Ausführungsform sind die Datenpunkte 110, 116 medizinische Bilder (z. B. Röntgen-, CT-, MRT-Bilder).
  • In mindestens einer Ausführungsform werden die Ergebnisse 114, 120 von jedem Client 106, 108 an den Client-Server 102 gesendet, sobald eine bestimmte Anzahl von Clients 106, 108 das lokale Training eines Teils des Supernetzes 104 unter Verwendung ihrer jeweiligen Prozessoren beendet hat. In mindestens einer Ausführungsform ist ein trainierter Teil des Supernetzes 104 ein ausgewähltes neuronales Netzwerk, das auch als optimales neuronales Netzwerk bezeichnet werden kann, und/oder ein Teilnetzwerk für jeden FL-Client-Standort (Client A 106, Client B 108). In mindestens einer Ausführungsform enthalten die Ergebnisse 114, 120 aktualisierte Modellgewichte (oder ihre Gradienten) aus dem trainierten Teil des Supernetzes für Client A 112 und dem trainierten Teil des Supernetzes für Client B 118, und aktualisierte Modellgewichte werden zur Aggregation an den Client-Server 102 gesendet. In mindestens einer Ausführungsform werden nach der Aggregation neue Gewichtungen an Client A 106 und Client B 108 neu verteilt und eine nächste Runde von lokalem Training wird ausgeführt. In mindestens einer Ausführungsform wird eine weitere Runde von Trainingsteilen des Supernetzes 104 von einem oder mehreren Prozessoren von jedem der Clients A und B 106, 108 durchgeführt. In mindestens einer Ausführungsform werden, nachdem ein oder mehrere Prozessoren mehrere Trainingsrunden in einer FL-Umgebung durchgeführt haben, trainierte Teile von jedem Client A 106 und Client B 108 konvergiert. In mindestens einer Ausführungsform darf jeder Client 106, 108 ein lokal bestes Modell (z. B. Teilnetzwerk) auswählen, indem er eine bestimmte Leistungsmetrik auf einem lokalen Holdout-Validierungssatz überwacht.
  • In mindestens einer Ausführungsform wird ein Algorithmus verwendet, der qualitativ hochwertige Modelle unter Verwendung relativ weniger Kommunikationsrunden trainiert, indem lokaler stochastischer Gradientenabstieg (SGD) auf jedem Client mit einem Server kombiniert wird, der Modellmittelung durchführt. In mindestens einer Ausführungsform minimiert FL eine globale Verlustfunktion
    Figure DE112021003077T5_0001
    , die eine gewichtete Kombination von K lokalen Verlusten { L k } k = 1 K
    Figure DE112021003077T5_0002
    sein kann, die jeweils auf den lokalen Daten eines Clients k berechnet werden. In mindestens einer Ausführungsform wird FL als nachstehende Gleichung 1 als Aufgabe formuliert, Modellparameter ϕ zu finden, die L bei gegebenen lokalen Daten X minimieren. M i n ϕ . L ( X ; ϕ )  mit  L ( X ; ϕ ) k = 1 K w k L k ( X k ; ϕ ) ,
    Figure DE112021003077T5_0003
  • In mindestens einer Ausführungsform bezeichnet wk > 0 in Bezug auf Gleichung 1 jeweils Gewichtungskoeffizienten für jeden Client k. In mindestens einer Ausführungsform werden lokale Daten Xi nicht von verschiedenen Clients gemeinsam genutzt und nur Modellgewichte werden auf einem Client-Server 102 akkumuliert und aggregiert, wie in Algorithmus 1 gezeigt:
    Figure DE112021003077T5_0004
    Figure DE112021003077T5_0005
  • In mindestens einer Ausführungsform wird das Trainieren unterschiedlicher Teile des Supernetzes 104 an jedem FL-Client-Standort von einem Prozessor an jedem FL-Client-Standort durchgeführt, der einen Datenpunkt durch das Supernetz 104 leitet, was zur Auswahl eines Teilnetzwerks aus dem Supernetz 104 führt. In mindestens einer Ausführungsform ist das ausgewählte Teilnetzwerk ein trainierter Teil des Supernetzes 104. In mindestens einer Ausführungsform umfasst das Supernetz
    Figure DE112021003077T5_0006
    verschiedene DL-Modulkandidaten
    Figure DE112021003077T5_0007
    , die für medizinische 3D-Bildgebungsaufgaben geeignet sind, die in Tabelle 1 unten gezeigt sind: Tabelle 1: Kandidaten für tiefe neuronale Netzwerkschichten.
    Index Faltungsoperationen
    1 3 × 3 × 3 3
    Figure DE112021003077T5_0008
    Faltung
    2 5 × 5 × 5 3
    Figure DE112021003077T5_0009
    Faltung
    3 7 × 7 × 7 3
    Figure DE112021003077T5_0010
    Faltung
    4 3 × 3 2
    Figure DE112021003077T5_0011
    Faltung in X-Richtung
    5 3 × 3 2
    Figure DE112021003077T5_0012
    Faltung in Y-Richtung
    6 3 × 3 2
    Figure DE112021003077T5_0013
    Faltung in Z-Richtung
  • In mindestens einer Ausführungsform sind diese Module auf mehreren Auflösungsstufen optimiert, um unterschiedliche Stufen von Low-Level- und semantischeren Bildmerkmalen zu erfassen, die für eine Segmentierungsaufgabe nützlich sind. In mindestens einer Ausführungsform wird eine Codierer-Decodierer-Struktur (wie in 2 ausführlicher gezeigt und beschrieben) mit Sprungverbindungen verwendet, die Merkmale eines Codierers mit ihrer entsprechenden Schicht in einem Decodiererpfad verketten. In mindestens einer Ausführungsform wählten während des Trainings bei jedem Client 106, 108 ein oder mehrere Prozessoren einen beliebigen Pfad m aus Modulkandidaten M nach einem einheitlichen Abtastschema (wie in 3 ausführlicher gezeigt und beschrieben) zum Definieren eines Teilnetzwerkss, das von dem Supernetz S abgetastet wird.
  • In mindestens einer Ausführungsform wird ein Dice-Verlust als eine Verlustfunktion angewendet, die bei Segmentierungsaufgaben mit einem Ungleichgewicht in einer Menge von Vordergrund-/Hintergrundregionen gut funktioniert: Min . s S ( L D i c e ) = ( 1 2 i = 1 N p i g i i = 1 N p i 2 + i = 1 N g i 2 )
    Figure DE112021003077T5_0014
  • In mindestens einer Ausführungsform ist pi eine vorhergesagte Wahrscheinlichkeit von einer letzten sigmoiden aktivierten Ausgangsschicht des Supernetzes ƒ(X) und gi eine Ground-Truth-Etikettenkarte bei einem gegebenen Voxel i. In mindestens einer Ausführungsform wird, sobald das Supernetz 104 trainiert ist, ein Teilnetzwerk s0 bei jedem Client 106, 108 bis zum Supernetz 104 gefunden, wodurch ein Modell effektiv an eine Zieldomäne angepasst wird. In mindestens einer Ausführungsform bleiben während der Adaption Modellparameter ϕ fest und nur Pfadgewichtungen werden für eine Epoche auf einem lokalen Validierungssatz optimiert. In mindestens einer Ausführungsform führt dies zu einem optimalen Pfad m 0 M
    Figure DE112021003077T5_0015
     
    Figure DE112021003077T5_0016
    der ein lokal angepasstes Teilnetzwerk s 0 S
    Figure DE112021003077T5_0017
    definiert.
  • 2 veranschaulicht ein Diagramm 200, in dem ein neuronales Netzwerk für eine Eingabe 202 (z. B. Datenpunkt oder Bild) in einer föderierten Lern(FL)-Umgebung bestimmt wird, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wählen ein oder mehrere Prozessoren an jedem FL-Client-Standort ein Teilnetzwerk für ein Bild 202 aus. In mindestens einer Ausführungsform führen Prozessoren an einem Client-Server Anweisungen aus, um ein Supernetz 104 aufzubauen. In mindestens einer Ausführungsform ist ein Supernetz 204 eine Kombination aus zwei oder mehr Netzwerken mit Superblöcken 106, die Kandidatenblockauswahlen enthalten, die zu einem größeren Netzwerk gebildet werden. In mindestens einer Ausführungsform ist ein Supernetz 204 ein großes Internet Protocol(IP)-Netzwerk, das eine Kombination aus mehreren kleineren Netzwerken ist.
  • In mindestens einer Ausführungsform umfasst ein zweiter Schritt, nachdem ein oder mehrere Prozessoren auf dem Client-Server ein Supernetz erzeugt haben, das Trainieren des Supernetzes 204, so dass es für die Segmentierung von medizinischen 3D-Bildern eingesetzt wird. In mindestens einer Ausführungsform empfängt jeder FL-Client-Standort das Supernetz 204 und ein oder mehrere Prozessoren an jedem FL-Client-Standort sind in der Lage, ein Teilnetzwerk unter Verwendung von Daten auszuwählen, auf die jeder FL-Client-Standort einzeln zugreifen kann (z. B. unter Verwendung von Daten, auf die nur jeder FL-Client-Standort zugreifen kann), wobei ein Teilnetzwerk effektiv an eine Zieldomäne für jeden FL-Client-Standort angepasst wird. In mindestens einer Ausführungsform bauen ein oder mehrere Prozessoren ein Supernetz 204 mit mehreren Superblöcken 206 auf, die verschiedene Modulkandidaten parallel bei verschiedenen Ebenen/Skalen enthalten. In mindestens einer Ausführungsform veranlassen ein oder mehrere Prozessoren, dass ein Supernetz 204 mit Pfaden (die willkürlich sein können) aus dem Abtasten (z. B. einheitlichen Abtasten) von Modulkandidaten 206 trainiert wird. In mindestens einer Ausführungsform veranlassen die Prozessoren dann, dass das Supernetz 204 mit Pfaden (die nichtwillkürlich sein können) aus zufälligen Stichproben von Modulkandidaten 206 trainiert wird. In mindestens einer Ausführungsform trainieren die Prozessoren das Supernetz 204 unter Verwendung eines Pfads, der mindestens teilweise auf einem Eingabetyp basiert, und eines anderen Pfads, der mindestens teilweise auf einem anderen Eingabetyp basiert. In mindestens einer Ausführungsform wählen, sobald das Training abgeschlossen ist, ein oder mehrere Prozessoren an jedem FL-Client-Standort ein Teilnetzwerk für jedes Bild 202 aus, wobei eine Auswahl im laufenden Betrieb (z. B. während der Schlussfolgerung) mit zusätzlichen Einschränkungen beim Einsatz bestimmt wird.
  • In mindestens einer Ausführungsform bauen weiter Bezug nehmend auf 2 ein oder mehrere Prozessoren am Client-Server ein Supernetz 204 mit einer Codierer-Decodierer-Makrostruktur auf. In mindestens einer Ausführungsform veranlassen ein oder mehrere Prozessoren, dass Mehrebenenmerkmale von Codierer und Decodierer im Supernetz 204 über Sprungverbindungen verkettet werden. In mindestens einer Ausführungsform sind Sprungverbindungen zusätzliche Verbindungen zwischen Blöcken in unterschiedlichen Schichten des Supernetzes 204, wo eine oder mehrere Schichten übersprungen werden. In mindestens einer Ausführungsform stellen diese zusätzlichen Verbindungen eine Verbindung vom Ausgang eines Blocks in einer Schicht zum Eingang eines anderen Blocks in einer anderen Schicht bereit, wobei eine oder mehrere Schichten zwischen diesen Verbindungen übersprungen werden. In mindestens einer Ausführungsform ist ein Supernetz 204 ein U-förmiges Netzwerk mit einem Codiererzweig und zwei Decodiererzweigen (in 4 ausführlicher gezeigt). In mindestens einer Ausführungsform verketten Sprungverbindungen Mehrebenenmerkmale von Codierer zu Decodierer. In mindestens einer Ausführungsform gibt es keine Sprungverbindung zwischen dem Codierer (vom Supernetz 204) und dem Rekonstruktionsdecodierer 208, da sich eine Rekonstruktionsprozedur auf das Lernen einer Merkmalsdarstellung konzentriert, ähnlich wie bei einem Autocodierer. In mindestens einer Ausführungsform und wie oben in Tabelle 1 in Bezug auf 1 werden sechs verschiedene Faltungsoperationen als Kandidatenschichten für alle gesuchten Module ausgewählt.
  • In mindestens einer Ausführungsform speisen ein oder mehrere Prozessoren an jedem FL-Client-Standort ein Eingabebild 202 in das Supernetz 204 ein, und ein Decoder (in 2 nicht dargestellt) erzeugt dementsprechend Segmentierungsmasken. In mindestens einer Ausführungsform wird ein Rekonstruktionsdecodierer 208 an einem Ende des Codierers hinzugefügt, um das Eingabeerscheinungsbild (z. B. rekonstruiertes Bild) 210 wiederherzustellen. In mindestens einer Ausführungsform liefert das Hinzufügen eines solchen Rekonstruktionsdecodierers 208 eine bessere Merkmalsdarstellung. In mindestens einer Ausführungsform werden Verlustfunktionen sowohl für den Decodierer als auch für den Rekonstruktionsdecodierer 208 optimiert, die wie folgt definiert sind: Min . a A L a = Min . a A ( L seg + L recon )
    Figure DE112021003077T5_0018
  • In mindestens einer Ausführungsform stellt A
    Figure DE112021003077T5_0019
    aus Gleichung 3 oben das gesamte Supernetz 204 dar und a A
    Figure DE112021003077T5_0020
    ist ein abgetastetes Teilnetzwerk aus dem Supernetz 204. In mindestens einer Ausführungsform ist Lseg in Gleichung 3 ein Soft-Dice-Verlust auf Vorhersagemasken und Segmentierungsetiketten, und Lseg ist ein L2-Verlust, um die Ähnlichkeit zwischen den Eingabebildern 202 und den rekonstruierten Bildern 210 zu quantifizieren. In mindestens einer Ausführungsform wird anstelle der Verwendung von Verlustfunktionen ein Verlust bestimmt, indem ein lokaler Validierungssatz verwendet wird.
  • In mindestens einer Ausführungsform durchsuchen ein oder mehrere Prozessoren jede Schicht des Supernetzes 204 dahingehend, ob sie Teil eines ausgewählten Pfads für das Eingabebild 202 ist. In mindestens einer Ausführungsform sind durchsuchte Schichten in einem Codierer enthalten, da Merkmalskarten des Codierers Bildkontextinformationen auf niedriger und hoher Ebene erfassen, was für die Modellkapazität kritisch ist. In mindestens einer Ausführungsform sind bei jeder durchsuchten Schicht N Kandidaten parallel zu N einzelnen Pfaden. In mindestens einer Ausführungsform hat jeder Pfad eine positive Gewichtung wn∈N und n = 1 N w n = 1.
    Figure DE112021003077T5_0021
    In mindestens einer Ausführungsform ist die Ausgabe einer gesuchten Schicht eine gewichtete Summe, und eine Anzahl von Eingangs- und Ausgangskanälen von Schichten ist festgelegt. In mindestens einer Ausführungsform haben Schichten niedrigerer Ebene weniger Kanäle, und eine Anzahl von Merkmalsabbildungen in jeder Schicht nimmt zu, wenn die Schichtebene höher wird. In mindestens einer Ausführungsform bleibt die räumliche Dimension bei notwendigen Auffülloperationen konstant. In mindestens einer Ausführungsform sind Downsampling- und Upsampling-Schichten im Supernetz 204 jeweils Max-Pooling bzw. trilineare Interpolation.
  • In mindestens einer Ausführungsform tasten ein oder mehrere Prozessoren an jedem FL-Client-Standort während des Trainings einen Pfad von jeder durchsuchten Schicht von Superblöcken 206 eines Supernetzes 204 einheitlich bei jeder Iteration ab, und Parameter neuer Teilnetzwerke werden während der Gradienten-Backpropagation aktualisiert. In mindestens einer Ausführungsform wird das Abtasten eines Pfads erreicht, indem Gewichtungen des ausgewählten Pfads auf 1 gesetzt werden und auf 0 verbleiben. In mindestens einer Ausführungsform sind Pfadgewichtungen feste Tensoren während des Trainings, die keine Gradienten erfordern. In mindestens einer Ausführungsform reduziert eine solche Operation den Speicherverbrauch der Grafikverarbeitungseinheit (GPU) stark, da das Trainieren großer 3D-Netzwerke zeitaufwändig und mit großen Rechenressourcen verbunden ist. In mindestens einer Ausführungsform werden alle anderen Gewichtungen in Codierer, Decodierer und Rekonstruktionsdecodierer gemeinsam aktualisiert. In mindestens einer Ausführungsform werden Gewichtungen von Pfaden auch während des Trainings aktualisiert. In mindestens einer Ausführungsform wird das Supernetz 204 jedoch mit einer großen Vorspannung trainiert, da Gewichtungen auch bestimmen, wie möglich jeder Pfad abgetastet wird. In mindestens einer Ausführungsform weist ein Pfad mit großen Gewichtungen genügend Aktualisierungen auf, und Pfade mit geringerer Gewichtung haben nicht genügend Trainingsproben verarbeitet. In mindestens einer Ausführungsform ist die Modellinitialisierung kritisch und bestimmt weitgehend ein endgültiges Teilnetzwerk.
  • 3 veranschaulicht ein Diagramm 300 eines allgemeinen Frameworks darüber, wie ein neuronales Netzwerk (z. B. Teilnetzwerk) für eine Eingabe (z. B. 3D-Bilder) 302 an einem Client-Standort für föderiertes Lernen (FL) ausgewählt wird, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform werden ein oder mehrere Prozessoren, die ein Teilnetzwerk für eine Eingabe 302 an jedem FL-Client-Standort auswählen, durchgeführt, indem Eingaben (die nur für jeden einzelnen FL-Client-Standort zugänglich sind) durch das Supernetz 304 geleitet werden und ein optimaler Pfad zum entsprechenden Aufbauen des Teilnetzwerks ausgewählt wird. In mindestens einer Ausführungsform nutzt das Auswählen eines Teilnetzwerks auf diese Weise Konzepte aus einer Neural Architecture Search (NAS), die zum automatischen Entwerfen eines neuronalen Netzwerks mit begrenzter menschlicher Heuristik verwendet wird, um unterschiedliche Benutzeranforderungen zu erfüllen (z. B. leichtes Modell, oder kleiner Rechenaufwand). In mindestens einer Ausführungsform ist ein Supernetz 304 ein neuronales Netzwerk, das eine Vielzahl von neuronalen Netzwerken umfasst. In mindestens einer Ausführungsform ist ein Supernetz 304 ein großes neuronales Netzwerk mit Kandidatenmodulen 312 parallel auf verschiedenen Ebenen. In mindestens einer Ausführungsform wird ein Netzwerk gemeinsam oder mit abgetasteten Pfaden/Modulen aus einem gesamten Netzwerk unter Verwendung von Reinforcement Learning(RL)-Algorithmen, generischen Algorithmen oder einheitlicher Stichprobenziehung, um ein Teilnetzwerk für das Training auszuwählen, trainiert. In mindestens einer Ausführungsform sind eine endgültige neuronale Netzwerkarchitektur bei dem Einsatz Teilnetzwerke mit ausgewählten Modulen/Pfaden von dem Supernetz 304 basierend auf skalaren Gewichtungen der Pfade/Module. In mindestens einer Ausführungsform wird während des Trainings ein Pool von Kandidatennetzwerken gesammelt, und es wird eine Auswahl durchgeführt, um ein Teilnetzwerk für jeden Datenpunkt bei der Inferenz nach bestimmten Kriterien zu finden.
  • In mindestens einer Ausführungsform teilen sich Eingabe und Ausgabe von Faltungsoperationen 306 dieselbe räumliche Form. In mindestens einer Ausführungsform wird die Menge der Faltungskerne nach den Max-Pooling-Schichten 310 verdoppelt oder nach den Upsampling-Schichten 308 halbiert. In mindestens einer Ausführungsform, wie in 3 gezeigt, ist die anfängliche Menge an einer ersten Faltungsschicht 16 und dann 32, 64 und 128. In mindestens einer Ausführungsform sind Aktivierungsfunktionen von Endabschnitts-(z. B. letzten) Faltungsschichten für Decodierer und Rekonstruktionsdecodierer Softmax- und lineare Funktionen.
  • 4 veranschaulicht ein Diagramm 400 eines abgetasteten Pfads zum Bilden eines neuronalen Netzwerks in einer föderierten Lern(FL)-Umgebung gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform veranschaulicht die erste Reihe 402 in 4 drei aufeinanderfolgende durchsuchte Module (Teil eines Supernetzes) und die zweite Reihe 404 ist ein abgetasteter Pfad von einem Supernetz zum Trainieren und Validieren. In mindestens einer Ausführungsform ist die erste Reihe 402 in 4 ein neuronales Basisliniennetzwerk, das ein U-förmiges Netzwerk mit einem Codiererzweig und zwei Decodiererzweigen ist. In mindestens einer Ausführungsform sind während des Trainings auf einer Grafikverarbeitungseinheit (mit 32 GB Speicher) Eingaben in das Netzwerk Patches mit einer Größe von 96 × 96 × 96, die zufällig von Bildern abgeschnitten werden. In mindestens einer Ausführungsform beträgt die Lernrate für den Optimierer zum Training 0,001, und die Lernrate für die endgültige Architekturbestimmung (gezeigt als λ in der unten beschriebenen Gleichung 4) beträgt 0,1. In mindestens einer Ausführungsform werden notwendige Datenvermehrungstechniken (z. B. zufällige Intensitätsverschiebung) für das Training verwendet. In mindestens einer Ausführungsform sind Fülleingabevolumina erforderlich, wenn die Dimension des Volumens kein Vielfaches von 16 ist.
  • In mindestens einer Ausführungsform wird, nachdem ein oder mehrere Prozessoren an einem Client-Server ein Supernetz trainiert haben, ein einzigartiges Teilnetzwerk für jeden Eingang an jedem FL-Client-Computersystem unter Anleitung zusätzlicher Modellbeschränkungen bei der Inferenz bestimmt. In mindestens einer Ausführungsform werden Modelle nach dem Training in Abhängigkeit von Zieldatenpunkten oder -domänen angepasst. In mindestens einer Ausführungsform wird das Testen des Abbilds vor dem Einsatz nicht gesehen, da eine dedizierte Auswahl von Teilnetzwerken in der Lage ist, Domänenvarianzen zu minimieren.
  • 5 veranschaulicht einen Prozess 500 zum Aufbauen eines Teilnetzwerks für eine Eingabe an einem Client-Standort für föderiertes Lernen (FL) gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird ein Supernetz trainiert, indem Trainingsergebnisse von jedem FL-Client-Standort aggregiert werden, wobei jeder FL-Client-Standort einen anderen Teil des Supernetzes trainiert. In mindestens einer Ausführungsform enthalten die Trainingsergebnisse Modellgewichte (Parameter), die von jedem FL-Client-Standort an einen Client-Server weitergegeben werden. In mindestens einer Ausführungsform wird jedem FL-Client-Standort 502 ein trainiertes Supernetz bereitgestellt, sobald der Client-Server Trainingsergebnisse empfängt und sie aggregiert. In mindestens einer Ausführungsform wählen ein oder mehrere Prozessoren an jedem FL-Client-Standort, nachdem ein oder mehrere Prozessoren das Supernetz trainieren und nachdem jeder FL-Client-Standort einen oder mehrere Datenpunkte (z. B. einen oder mehrere Testdatenpunkte) unter Verwendung des Supernetzes passiert hat, ein Teilnetzwerk im laufenden Betrieb (z. B. während der Schlussfolgerung) 504. In mindestens einer Ausführungsform schlussfolgern ein oder mehrere Prozessoren an jedem FL-Client-Standort einen oder mehrere Datenpunkte zumindest teilweise basierend auf dem Empfang mehrerer Bilder (z. B. Frames eines Videos oder verschiedene Bilder derselben Sache aus verschiedenen Kamerawinkeln, verschiedenen Typen von medizinischen Scans derselben Sache usw.), bei denen mehrere Bilder einen oder mehrere Testdatenpunkte enthalten. In mindestens einer Ausführungsform würde, wenn jeder Testdatenpunkt in ein Supernetz eingespeist wird, ein optimaler Pfad auf jeder Suchschicht gleichzeitig unter Verwendung zusätzlicher Beschränkungen bestimmt werden. In mindestens einer Ausführungsform werden mehrere Bilder, die eine Vielzahl von Testdatenpunkten enthalten, in das Supernetz eingespeist, und eine Vielzahl von optimalen Pfaden auf jeder Suchschicht werden für jeden einer Vielzahl von Testdatenpunkten bestimmt. In mindestens einer Ausführungsform wird die Vorhersage eines bestimmten Datenpunkts ausschließlich auf der Grundlage neu ausgewählter neuronaler Netzwerke mit vortrainierten Gewichten berechnet. In mindestens einer Ausführungsform hat jeder Datenpunkt sein eigenes neuronales Netzwerk bei der Inferenz, und die Datenpräferenz, die aus der Suche nach neuronalen Netzwerken gelernt wird, wird effektiv angewendet.
  • In mindestens einer Ausführungsform werden, um eine On-the-Fly-Auswahl eines neuronalen Netzwerks zu erreichen, an jedem FL-Client-Standort zusätzliche Informationen von einem Rekonstruktionszweig verwendet. In einer Ausführungsform ist ein Überblick über das Erreichen einer On-the-Fly-Auswahl eines neuronalen Netzwerks in einem nachstehenden Algorithmus (Algorithmus 2) wie folgt gezeigt:
    Figure DE112021003077T5_0022
  • In mindestens einer Ausführungsform gibt Algorithmus 2 an, dass ein erster Schritt das Einspeisen eines neuen Testdatenpunkts x in ein Supernetz umfasst, so dass der Rekonstruktionsverlust Lrecon durch einen Codierer und einen Rekonstruktionsdecodierer berechnet wird. In mindestens einer Ausführungsform wird der Rekonstruktionsverlust durch Vergleichen des rekonstruierten Datenpunkts mit dem Eingangsdatenpunkt unter Verwendung eines mittleren quadratischen Fehlers oder Kreuzentropie durchgeführt. In mindestens einer Ausführungsform wird ein lokaler Validierungssatz verwendet, um einen Verlust zu bestimmen 506. In mindestens einer Ausführungsform wird der Datenpunkt x nicht mit anderen Clients geteilt. In mindestens einer Ausführungsform zeigt ein Verlust eine Ähnlichkeit zwischen Testdaten und rekonstruierten Testdaten an. In mindestens einer Ausführungsform werden durch Aktualisieren eines Verlusts Gradienten zurück zu vorherigen Schichten verbreitet. In mindestens einer Ausführungsform sind die Gewichtungen aller Module im Codierer, Decodierer und Rekonstruktionsdecodierer festgelegt und ermöglichen, dass Pfadgewichtungen wn trainierbar sind. In mindestens einer Ausführungsform wird einiges oder alles von wn nach dem Training mit einer Iteration unter Verwendung eines spezifischen Testdatenpunkts aktualisiert. w n ' w n + λ w n L recon ( x ; w n , n = 1 N )
    Figure DE112021003077T5_0023
  • In mindestens einer Ausführungsform ist λ in Gleichung 4 oben eine Lernrate. In mindestens einer Ausführungsform wird, sobald die Aktualisierung erfolgt ist, einfach ein optimaler Pfad auf jeder Ebene gewählt, indem einer mit einem größten wn genommen wird 508. In mindestens einer Ausführungsform wird ein Teilnetzwerk aufgebaut, wobei alle optimalen Pfade für den Datenpunkt 510 bestimmt sind. In mindestens einer Ausführungsform wird anschließend eine Vorhersage für diesen Datenpunkt erzeugt, indem er in eine endgültige Netzwerkstruktur eingespeist wird. In mindestens einer Ausführungsform wird wn für einen nachfolgenden Datenpunkt auf 1 n
    Figure DE112021003077T5_0024
    zurückgesetzt 512, und die Gewichtungsaktualisierung wird erneut wiederholt, so dass eine Entscheidung jedes datengesteuerten Teilnetzwerks unabhängig ist. In mindestens einer Ausführungsform werden einige oder alle Pfadgewichtungen wn auf 1 n
    Figure DE112021003077T5_0025
    zurückgesetzt. In mindestens einer Ausführungsform werden nach dem Aufbau des Teilnetzwerks Pfadgewichtungen von jedem FL-Client-Standort an einen Client-Server zur Aggregation zum Trainieren des Supernetzes gesendet.
  • In mindestens einer Ausführungsform wird während der Aktualisierung von Pfadgewichtungen wn kein anderes Modul im Supernetz aktualisiert. In mindestens einer Ausführungsform profitieren unterschiedliche Datenpunkte bei der Inferenz von ihrem eigenen Merkmalsextrahierer. In mindestens einer Ausführungsform ist das Aktualisieren der Pfadgewichtung wn effizient, da es sich um Vektorvariablen mit Schichten handelt, die eine Gradientenberechnung erfordern. In mindestens einer Ausführungsform ist die Inferenz mit einem Teilnetzwerk viel schneller als die eines gesamten Supernetzes.
  • 6 veranschaulicht einen Prozess 600 zum Verwenden von Informationen aus dem Inferenzieren einer Eingabe zum Auswählen eines neuronalen Netzwerks an jedem Client-Standort für föderiertes Lernen (FL) gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform sind die hierin beschriebenen Techniken eine Möglichkeit für jeden FL-Client-Standort, ein neuronales Netzwerk auszuwählen, nachdem ein oder mehrere Datenpunkte (z. B. Datenpunkte von einem Video oder ein Datenpunkt von einem Bild) 602 zu einem Zeitpunkt des Schlussfolgerns erhalten wurden. In mindestens einer Ausführungsform empfängt ein Prozessor mit einer oder mehreren Schaltungen ein Bild (entweder von einem lokalen Datenspeicher oder einem entfernten Speicher, auf den nur jeder einzelne FL-Client-Standort zugreifen kann und der nicht von anderen FL-Client-Standorten gemeinsam genutzt wird) und wendet ein trainiertes neuronales Netzwerk (z. B. Supernetz) für Rückschlüsse an. In mindestens einer Ausführungsform werden Informationen aus der Inferenz durch den Prozessor verwendet, um ein Teilnetzwerk für ein Bild auszuwählen. In mindestens einer Ausführungsform speisen ein oder mehrere Prozessoren an jedem Client-FL-Standort ein Eingabebild in ein trainiertes Supernetz ein, und ein Rekonstruktionsdecodierer erzeugt dementsprechend Segmentierungsmasken. In mindestens einer Ausführungsform wird ein Rekonstruktionsdecodierer an einem Ende des Codierers hinzugefügt, um das Eingabeerscheinungsbild (z. B. rekonstruiertes Bild) wiederherzustellen. In mindestens einer Ausführungsform wird während dem Training ein Pfad von jeder durchsuchten Schicht von oberen Blöcken des Supernetzes gleichmäßig bei jeder Iteration abgetastet, und Parameter neuer Teilnetzwerke werden während der Gradienten-Backpropagation aktualisiert. In mindestens einer Ausführungsform wird das Abtasten eines Pfads erreicht, indem die Gewichtungen des ausgewählten Pfads auf 1 gesetzt werden und auf 0 verbleiben. In mindestens einer Ausführungsform wird ein Pfad mit großen Gewichtungen genügend Aktualisierungen haben und Pfade mit geringerer Gewichtung haben nicht ausreichend Trainingsabtastungen verarbeitet. In mindestens einer Ausführungsform wählen ein oder mehrere Prozessoren an jedem FL-Client-Standort einen optimalen Pfad zum Bilden eines Teilnetzwerks basierend auf aktualisierten Gewichtungen. In mindestens einer Ausführungsform umfasst jeder FL-Client-Standort ein Computersystem, das unterschiedliche Scangeräte (CT-Scanner, MRT-Scanner usw.) umfasst, die je nach Typ, Hersteller und auf andere Weise variieren und dadurch unterschiedliche Arten von Eingaben erzeugen. In mindestens einer Ausführungsform ist jeder FL-Client-Standort ein unterschiedliches Computersystem aus demselben Krankenhaus. In mindestens einer Ausführungsform ist jeder FL-Client ein unterschiedliches Computersystem, das sich in unterschiedlichen Krankenhäusern befindet.
  • In mindestens einer Ausführungsform verarbeiten ein oder mehrere Prozessoren an jedem FL-Client-Standort beim Durchführen von Computer-Vision-Aufgaben verschiedene Bilder unter Verwendung verschiedener neuronaler Netzwerke. In mindestens einer Ausführungsform weist jede Schicht eines potenziellen neuronalen Netzwerks zum Zeitpunkt der Inferenzierung viele verschiedene Operationen (z. B. Faltungen) auf, die durchgeführt werden. In mindestens einer Ausführungsform werden für jede Schicht alle Operationen durchgeführt und die Ergebnisse werden gemittelt oder anderweitig kombiniert und in eine nächste Schicht eingespeist. In mindestens einer Ausführungsform werden gewichtete Mittelwerte auf die Ergebnisse angewendet, bevor sie in eine nächste Schicht eingespeist werden. In mindestens einer Ausführungsform werden Ergebnisse in ein Generatornetzwerk eingespeist, das ein Bild rekonstruiert. In mindestens einer Ausführungsform vergleicht eine Rekonstruktionsverlustfunktion, wie ein rekonstruiertes Bild mit einem Originalbild verglichen wird, und Werte der Rekonstruktionsverlustfunktion (z. B. Informationen aus der Inferenz) geben an, welche Operation auf jeder Schicht im Netzwerk 604 auszuwählen ist, um ein neuronales Netzwerk für dieses Bild (z. B. Teilnetzwerk für dieses Bild) aufzubauen. In mindestens einer Ausführungsform zeigt der Rekonstruktionsverlust eine Ähnlichkeit zwischen dem Originalbild und dem rekonstruierten Bild an, und der Verlust wird aktualisiert, indem Gradienten zurück zu vorherigen Schichten propagiert werden, wo Pfadgewichtungen in jeder Schicht aktualisiert werden. In mindestens einer Ausführungsform wird eine Kreuzentropietechnik oder ein mittlerer quadratischer Fehler verwendet, um einen Verlust zwischen rekonstruiertem Bild und Eingabebild zu bestimmen. In mindestens einer Ausführungsform umfassen die Ergebnisse eines Vergleichs das Auswählen eines Teilnetzwerks für einen Datenpunkt mit der größten Pfadgewichtung. In mindestens einer Ausführungsform wird das Bild dann durch ein neuronales Netzwerk mit dieser Architektur 606 an einem FL-Client-Standort geleitet. In mindestens einer Ausführungsform werden einige oder alle Pfadgewichtungen für ein nachfolgendes Bild (z. B. einen anderen Datenpunkt) 608 zurückgesetzt.
  • 7 veranschaulicht einen Prozess 700 zum Verwenden von Informationen aus dem Inferenzieren einer Eingabe zum Auswählen eines unterschiedlichen neuronalen Netzwerks an einem Client-Standort für föderiertes Lernen (FL) gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform erhält ein Prozessor mit einer oder mehreren Schaltungen eine andere Eingabe, wie z. B. ein zweites Bild (das auch als zweiter Datenpunkt bezeichnet werden kann) 702, das sich von dem Bild unterscheidet, wie es mit Bezug auf 6 beschrieben wurde. In mindestens einer Ausführungsform ist das zweite Bild vom gleichen Typ wie das in Bezug auf 6 beschriebene Bild. In mindestens einer Ausführungsform leiten ein oder mehrere Prozessoren an jedem FL-Client-Standort ein zweites Bild durch ein Supernetz, das eine Vielzahl von neuronalen Netzwerken umfasst, und Informationen aus der Inferenz werden verwendet, um ein neuronales Netzwerk (z. B. Teilnetzwerk) zu bestimmen, das bei dem zweiten Bild 704 angewendet werden kann. In mindestens einer Ausführungsform wird das zweite Bild in ein trainiertes Supernetz eingespeist, und ein Rekonstruktionsdecodierer erzeugt dementsprechend Segmentierungsmasken. In mindestens einer Ausführungsform wird während dem Training ein Pfad von jeder durchsuchten Schicht von oberen Blöcken des Supernetzes gleichmäßig bei jeder Iteration abgetastet, und Parameter neuer Teilnetzwerke werden während der Gradienten-Backpropagation aktualisiert. In mindestens einer Ausführungsform wird das Abtasten eines Pfads erreicht, indem die Gewichtungen des ausgewählten Pfads auf 1 gesetzt werden und auf 0 verbleiben. In mindestens einer Ausführungsform wird ein Pfad mit großen Gewichtungen genügend Aktualisierungen haben und Pfade mit geringerer Gewichtung haben nicht ausreichend Trainingsabtastungen verarbeitet. In mindestens einer Ausführungsform wird ein Teilnetzwerk (z. B. Pfad, optimales neuronales Netzwerk) für das zweite Bild basierend auf aktualisierten Gewichtungen ausgewählt.
  • In mindestens einer Ausführungsform wird das Bestimmen oder Auswählen eines neuronalen Netzwerks für das zweite Bild ähnlich durchgeführt, wie das Bild, wie es mit Bezug auf 6 beschrieben wurde. In mindestens einer Ausführungsform veranlassen die Ergebnisse der Inferenz einen oder mehrere Prozessoren an jedem FL-Client-Standort, ein auf das zweite Bild anwendbares neuronales Netzwerk auszuwählen, das sich von dem neuronalen Netzwerk unterscheidet 606, das für das Bild verwendet wird, wie in Bezug auf 6 beschrieben. In mindestens einer Ausführungsform werden Bilder von einem Prozessor verarbeitet, und während der Inferenzbildung werden neuronale Netzwerke für jedes jeweilige Bild im Computersystem jedes FL-Clients ausgewählt. In mindestens einer Ausführungsform kann das ausgewählte neuronale Netzwerk für jedes Bild unterschiedlich sein, obwohl die Bilder alle vom gleichen Typ sind. In mindestens einer Ausführungsform ist der zweite Datenpunkt von einem anderen Typ als der erste Datenpunkt. In mindestens einer Ausführungsform wird für den zweiten Datenpunkt eine neuronale Netzwerkarchitektur ausgewählt, die sich auch von der für den ersten Datenpunkt ausgewählten neuronalen Netzwerkarchitektur unterscheidet.
  • 8 veranschaulicht ein Diagramm experimenteller Ergebnisse aus der Implementierung der Auswahl eines neuronalen Netzwerks für zu folgernde Informationen in einer föderierten Lern(FL)-Umgebung gemäß mindestens einer Ausführungsform.
  • In mindestens einer Ausführungsform werden in Bezug auf die verwendeten Datensätze Prostata-Magnetresonanzbild(MRT-Datensätze aus vier verschiedenen öffentlich zugänglichen Datenquellen verwendet, die als MSD-Prostate (http://medicaldecathlon.com), PROMISE 12 (https://promise 12.grand-challenge.org), NCI-ISBI13 (http://doi.org/10.7937/K9/TCIA.2015.zFOvlOPv) und ProstateX (https://prostatex.grand-challenge.org ) gekennzeichnet sind. In mindestens einer Ausführungsform werden für jeden Datensatz drei zufällige Aufteilungen in Trainings-, Validierungs- und Testsätze mit ungefähr 70 %, 10 % und 20 % der Gesamtzahl der Fälle jedes Datensatzes durchgeführt. In mindestens einer Ausführungsform wird die resultierende Anzahl von Fällen für jeden Datensatz in Tabelle 2 gezeigt: Tabelle 2: Ergebnisse für den zentralisierten Datensatz und jeden Datensatz, der in föderiertem Lernen trainiert wurde. Die Leistung der hierin beschriebenen Techniken unter Verwendung von Supernetz (SN) wird bestimmt. Der durchschnittliche Dice der Scores eines lokalen Modells wird angezeigt (ohne Punktzahlen auf zentralisierten Daten).
    Fälle Zentral NCI PROMISE12 ProstateX MSD
    Training 172 45 35 69 23
    Validierung 23 6 5 9 3
    Testen 48 12 10 20 6
    Gesamt 243 63 50 98 32
    Durchschn. Dice [%] Zentral NCI PROMISE12 ProstateX MSD Durchschn. (lok.)
    U-Netz (föd.) 83,7 1 81,74 90,61 77,0 5 83,28
    SN (föd.) 88,7 9 85,35 91,45 82,3 8 86,99
    SN (föd.) + anpassen 88,6 0 85,57 91,45 82,3 8 87,00
  • In mindestens einer Ausführungsform werden die Ergebnisse über Testaufteilungen jeder zufälligen Aufteilung gemittelt. In mindestens einer Ausführungsform werden Ergebnisse auf einem zentralisierten Datensatz gezeigt, wo alle vier Datensätze kombiniert wurden. In mindestens einer Ausführungsform wird die Leistung für Modelle, die durch föderiertes Lernen trainiert wurden, und die Testaufteilung jedes Datensatzes verglichen. In mindestens einer Ausführungsform wird jedes Bild auf eine konstante Auflösung von 0,5 mm × 0,5 mm × 1,0 mm neu abgetastet, und alle Bildintensitäten ungleich Null werden durch Subtrahieren ihres Mittelwerts und Teilen durch ihre Standardableitung pro Bildbasis normalisiert.
  • In mindestens einer Ausführungsform wird das Supernetz in Bezug auf die Implementierung trainiert, indem zufällig zugeschnittene Patches der Größe 256 × 256 × 32 aus Eingabebildern und Etiketten verwendet werden. In mindestens einer Ausführungsform wird eine Ministapelgröße von 4 verwendet, indem zwei zufällige Ausschnitte aus beliebigen zwei zufälligen Eingabebild- und Etikettenpaaren ausgewählt werden. In mindestens einer Ausführungsform wurde NovoGrad als Optimierer zum Trainieren des Supernetzes gewählt. In mindestens einer Ausführungsform wurde die Lernrate für das Supernetz-Training auf 1e-2 gesetzt. In mindestens einer Ausführungsform wird zum Finden des optimalen Pfads für das endgültige Teilnetzwerk ein Adam-Optimierer mit einer Lernrate von 1e-3 verwendet. In mindestens einer Ausführungsform werden Augmentationstechniken wie zufällige Intensitätsverschiebungen, Kontrastanpassungen und Hinzufügen von Gauß'schem Rauschen während des Trainings angewendet, um eine Überanpassung des Trainingssatzes zu vermeiden. In mindestens einer Ausführungsform werden beide Supernetze mit PyTorch (https://pytorch.org) implementiert und auf GPUs mit 32 GB Speicher trainiert.
  • In mindestens einer Ausführungsform zeigen in Bezug auf die Ergebnisse Tabelle 2 oben und 8 die Leistung für die Annahme föderierter Datensätze. In mindestens einer Ausführungsform ist manchmal der lokale optimale Pfad m 0 M
    Figure DE112021003077T5_0026
    äquivalent zu der Basis, die für die Modellauswahl während des Supernetz-Trainings verwendet wird (Pfad mit allen m = [1,1, ...,1,1], wie in Tabelle 1 gezeigt). In mindestens einer Ausführungsform können die Zahlen vor und nach der Anpassung in Tabelle 2 und 8 äquivalent sein.
  • In mindestens einer Ausführungsform zeigt das Diagramm 800 zusätzlich zu Tabelle 2 an, dass Supernetz-Training mit lokaler Anpassung in FL (SN (föd.) + anpass.) einen hohen durchschnittlichen Dice-Score auf lokalen Datensätzen erreicht. In mindestens einer Ausführungsform veranschaulichen die Ergebnisse davon die Durchführbarkeit des Supernetz-Trainings mit lokaler Modellanpassung an die Daten des Clients. In mindestens einer Ausführungsform gibt es eine Verbesserung in der Leistung eines lokalen Supernetz-Modells, wenn es in einer FL-Umgebung trainiert wird. In mindestens einer Ausführungsform kann das Supernetz-Modelltraining von einer größeren effektiven Trainingssatzgröße profitieren, die durch FL verfügbar gemacht wird, ohne dass irgendwelche Rohbilddaten zwischen Clients geteilt werden müssen.
  • INFERENZ- UND TRAININGSLOGIK
  • 9A veranschaulicht Inferenz- und/oder Trainingslogik 915, die verwendet wird, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind nachstehend in Verbindung mit 9A und/oder 9B bereitgestellt.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 ohne Einschränkung Code- und/oder Datenspeicher 901 beinhalten, um Vorwärts- und/oder Ausgabegewichtungs- und/oder Eingabe-/Ausgabedaten und/oder andere Parameter zu speichern, um Neuronen oder Schichten eines neuronalen Netzes zu konfigurieren, das in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder zum Inferenzieren verwendet wird. In mindestens einer Ausführungsform kann die Trainingslogik 915 Code- und/oder Datenspeicher 901 beinhalten oder an diesen gekoppelt sein, um Graphencode oder andere Software zum Steuern der Zeitsteuerung und/oder Reihenfolge zu speichern, in der Gewichtungs- und/oder andere Parameterinformationen geladen werden sollen, um Logik zu konfigurieren, einschließlich Integer- und/oder Gleitkommaeinheiten (zusammen als arithmetisch-logische Einheiten (ALUs) bezeichnet). In mindestens einer Ausführungsform lädt Code, wie etwa Graphencode, Gewichtungs- oder andere Parameterinformationen in Prozessor-ALUs auf Grundlage einer Architektur eines neuronalen Netzes, dem derartiger Code entspricht. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 901 Gewichtungsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzes, die in Verbindung mit einer oder mehreren Ausführungsformen trainiert oder verwendet wird, während der Vorwärtspropagierung von Eingabe-/Ausgabedaten und/oder Gewichtungsparametern während des Trainierens und/oder Inferenzierens unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 901 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, enthalten sein.
  • In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 901 zu einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder -Schaltungen intern oder extern sein. In mindestens einer Ausführungsform kann der Code und/oder Code- und/oder Datenspeicher 901 Cache-Speicher, dynamischer zufällig adressierbarer Speicher (dynamic randomly addressable memory - „DRAM“), statischer zufällig adressierbarer Speicher (static randomly addressable memory - „SRAM“), nichtflüchtiger Speicher (z. B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann eine Wahl, ob der Code und/oder Code- und/oder Datenspeicher 901 zum Beispiel zu einem Prozessor intern oder extern ist oder DRAM, SRAM, Flash oder einen anderen Speichertyp umfasst, von dem verfügbaren chipinternen oder chipexternen Speicher, den Latenzanforderungen der Trainings- und/oder Inferenzfunktionen, die durchgeführt werden, der Batch-Größe der Daten, die beim Inferenzieren und/oder Trainieren eines neuronalen Netzes verwendet werden, oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 ohne Einschränkung einen Code- und/oder Datenspeicher 905 beinhalten, um Rückwärts- und/oder Ausgabegewichtungs- und/oder Eingabe-/Ausgabedaten zu speichern, die Neuronen oder Schichten eines neuronalen Netzes entsprechen, das in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder zum Inferenzieren verwendet wird. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 905 Gewichtungsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzes, die in Verbindung mit einer oder mehreren Ausführungsformen trainiert oder verwendet wird, während der Rückwärtspropagierung von Eingabe-/Ausgabedaten und/oder Gewichtungsparametern während des Trainierens und/oder Inferenzierens unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann die Trainingslogik 915 Code- und/oder Datenspeicher 905 beinhalten oder an diesen gekoppelt sein, um Graphencode oder andere Software zum Steuern der Zeitsteuerung und/oder Reihenfolge zu speichern, in der Gewichtungs- und/oder andere Parameterinformationen geladen werden sollen, um Logik zu konfigurieren, einschließlich Integer- und/oder Gleitkommaeinheiten (zusammen als arithmetisch-logische Einheiten (ALUs) bezeichnet).
  • In mindestens einer Ausführungsform bewirkt Code, wie etwa Graphencode, das Laden von Gewichtungs- oder anderen Parameterinformationen in Prozessor-ALUs auf Grundlage einer Architektur eines neuronalen Netzes, dem derartiger Code entspricht. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 905 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, enthalten sein. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 905 zu einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder -Schaltungen intern oder extern sein. In mindestens einer Ausführungsform kann der Code- und/oder Datenspeicher 905 Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z. B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann eine Wahl, ob der Code- und/oder Datenspeicher 905 zum Beispiel zu einem Prozessor intern oder extern ist oder DRAM, SRAM, Flash-Speicher oder einen anderen Speichertyp umfasst, von dem verfügbaren chipinternen oder chipexternen Speicher, den Latenzanforderungen der Trainings- und/oder Inferenzfunktionen, die durchgeführt werden, der Batch-Größe der Daten, die beim Inferenzieren und/oder Trainieren eines neuronalen Netzes verwendet werden, oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 901 und der Code- und/oder Datenspeicher 905 separate Speicherstrukturen sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 901 und der Code- und/oder Datenspeicher 905 eine kombinierte Speicherstruktur sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 901 und der Code- und/oder Datenspeicher 905 teilweise kombiniert und teilweise separat sein. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 901 und des Code- und/oder Datenspeichers 905 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, enthalten sein.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 ohne Einschränkung eine oder mehrere arithmetisch-logische Einheit(en) („ALU(s)“) 910 beinhalten, einschließlich Integer- und/oder Gleitkommaeinheiten, um logische und/oder mathematische Operationen durchzuführen, die mindestens zum Teil auf Trainings- und/oder Inferenzcode (z. B. Graphencode) basieren oder dadurch angegeben werden, wobei ein Ergebnis davon Aktivierungen (z. B. Ausgabewerte von Schichten oder Neuronen innerhalb eines neuronalen Netzes) produzieren kann, die in einem Aktivierungsspeicher 920 gespeichert sind und die Funktionen von Eingabe/Ausgabe- und/oder Gewichtungsparameterdaten sind, die in dem Code- und/oder Datenspeicher 901 und/oder dem Code- und/oder Datenspeicher 905 gespeichert sind. In mindestens einer Ausführungsform werden in dem Aktivierungsspeicher 920 gespeicherte Aktivierungen gemäß linearer algebraischer und/oder matrixbasierter Mathematik erzeugt, die durch die ALU(s) 910 als Reaktion auf das Durchführen von Anweisungen oder anderem Code durchgeführt wird, wobei in dem Code- und/oder Datenspeicher 905 und/oder dem Datenspeicher 901 gespeicherte Gewichtungswerte als Operanden zusammen mit anderen Werten, wie etwa Verzerrungswerten, Gradienteninformationen, Momentwerten oder anderen Parametern oder Hyperparametern, verwendet werden, von denen beliebige oder alle in dem Code- und/oder Datenspeicher 905 oder dem Code- und/oder Datenspeicher 901 oder einem anderen chipinternen oder -externen Speicher gespeichert sein können.
  • In mindestens einer Ausführungsform sind die ALU(s) 910 innerhalb eines oder mehrerer Prozessoren oder anderer Hardware-Logikvorrichtungen oder -Schaltungen enthalten, während in einer anderen Ausführungsform die ALU(s) 910 zu einem Prozessor oder einer anderen Hardware-Logikvorrichtung oder -Schaltung extern sein können, der/die sie verwendet (z. B. ein Koprozessor). In mindestens einer Ausführungsform können die ALUs 910 innerhalb der Ausführungseinheiten eines Prozessors oder anderweitig innerhalb einer Bank von ALUs enthalten sein, worauf die Ausführungseinheiten eines Prozessors zugreifen können, entweder innerhalb des gleichen Prozessors oder verteilt auf unterschiedliche Prozessoren unterschiedlichen Typs (z. B. zentrale Verarbeitungseinheiten, Grafikverarbeitungseinheiten, Festfunktionseinheiten usw.). In mindestens einer Ausführungsform können sich der Code- und/oder Datenspeicher 901, der Code- und/oder Datenspeicher 905 und der Aktivierungsspeicher 920 einen Prozessor oder eine andere Hardware-Logikvorrichtung oder -schaltung teilen, während sie sich in einer anderen Ausführungsform in unterschiedlichen Prozessoren oder anderen Hardware-Logikvorrichtungen oder - Schaltungen oder in einer Kombination aus gleichen und unterschiedlichen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -Schaltungen befinden können. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Aktivierungsspeichers 920 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, enthalten sein. Darüber hinaus kann der Ableitungs- und/oder Trainingscode mit anderem Code gespeichert sein, auf den ein Prozessor oder eine andere Hardware-Logik oder -Schaltung zugreifen kann und der unter Verwendung der Abruf-, Decodier-, Planungs-, Ausführungs-, Ausscheidungs- und/oder anderen logischen Schaltungen eines Prozessors abgerufen und/oder verarbeitet wird.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 920 Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z. B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann sich der Aktivierungsspeicher 920 ganz oder teilweise innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer logischer Schaltungen befinden. In mindestens einer Ausführungsform kann eine Wahl, ob der Aktivierungsspeicher 920 zum Beispiel zu einem Prozessor intern oder extern ist oder DRAM, SRAM, Flash-Speicher oder einen anderen Speichertyp umfasst, von dem verfügbaren chipinternen oder chipexternen Speicher, den Latenzanforderungen der Trainings- und/oder Inferenzfunktionen, die durchgeführt werden, der Batch-Größe der Daten, die beim Inferenzieren und/oder Trainieren eines neuronalen Netzes verwendet werden, oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die in 9A veranschaulichte Inferenz- und/oder Trainingslogik 915 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (application-specific integrated circuit - „ASIC“) verwendet werden, wie etwa einer TensorFlow® Processing Unit von Google, einer Inferenzverarbeitungseinheit (inference processing unit - IPU) von Graphcore™ oder einem Prozessor vom Typ Nervana® (z. B. „Lake Crest“) der Intel Corp. In mindestens einer Ausführungsform kann die in 9A veranschaulichte Inferenz- und/oder Trainingslogik 915 in Verbindung mit Hardware der zentralen Verarbeitungseinheit (central processing unit - „CPU“), Hardware der Grafikverarbeitungseinheit („GPU“) oder anderer Hardware, wie etwa feldprogrammierbaren Gate-Arrays (field programmable gate arrays - „FPGAs“), verwendet werden.
  • 9B veranschaulicht Inferenz- und/oder Trainingslogik 915 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 ohne Einschränkung Hardware-Logik beinhalten, in der Rechenressourcen dediziert oder anderweitig ausschließlich in Verbindung mit Gewichtungswerten oder anderen Informationen verwendet werden, die einer oder mehreren Schichten von Neuronen innerhalb eines neuronalen Netzes entsprechen. In mindestens einer Ausführungsform kann die in 9B veranschaulichte Inferenz- und/oder Trainingslogik 915 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verwendet werden, wie etwa der TensorFlow® Processing Unit von Google, einer Inferenzverarbeitungseinheit (IPU) von Graphcore™ oder einem Prozessor vom Typ Nervana® (z. B. „Lake Crest“) der Intel Corp. In mindestens einer Ausführungsform kann die in 9B veranschaulichte Inferenz- und/oder Trainingslogik 915 in Verbindung mit Hardware der zentralen Verarbeitungseinheit (CPU), Hardware der Grafikverarbeitungseinheit (GPU) oder anderer Hardware, wie etwa feldprogrammierbaren Gate-Arrays (FPGAs), verwendet werden. In mindestens einer Ausführungsform beinhaltet die Inferenz- und/oder Trainingslogik 915 ohne Einschränkung den Code- und/oder Datenspeicher 901 und den Code- und/oder Datenspeicher 905, die zum Speichern von Code (z. B. Graphencode), Gewichtungswerten und/oder anderen Informationen, einschließlich Verzerrungswerten, Gradienteninformationen, Momentwerten und/oder anderer Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer Ausführungsform, die in 9B veranschaulicht ist, ist jeder des Code- und/oder Datenspeichers 901 und des Code- und/oder Datenspeichers 905 mit einer dedizierten Rechenressource, wie etwa der Rechen-Hardware 902 bzw. der Rechen-Hardware 906, assoziiert. In mindestens einer Ausführungsform umfasst jede der Rechen-Hardware 902 und der Rechen-Hardware 906 eine oder mehrere ALUs, die mathematische Funktionen, wie etwa lineare algebraische Funktionen, nur an Informationen durchführen, die in dem Code- und/oder Datenspeicher 901 bzw. dem Code- und/oder Datenspeicher 905 gespeichert sind, wobei das Ergebnis davon in dem Aktivierungsspeicher 920 gespeichert wird.
  • In mindestens einer Ausführungsform entspricht jedes der Code- und/oder Datenspeicher 901 und 905 und der entsprechenden Rechen-Hardware 902 bzw. 906 unterschiedlichen Schichten eines neuronalen Netzes, sodass die resultierende Aktivierung von einem Speicher-/Rechenpaar 901/902 des Code- und/oder Datenspeichers 901 und der Rechen-Hardware 902 als Eingabe einem nächsten Speicher-/Rechenpaar 905/906 des Code- und/oder Datenspeichers 905 und der Rechen-Hardware 906 bereitgestellt wird, um eine konzeptionelle Organisation eines neuronalen Netzes widerzuspiegeln. In mindestens einer Ausführungsform kann jedes der Speicher-/Rechenpaare 901/902 und 905/906 mehr als einer Schicht eines neuronalen Netzes entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher-/Rechenpaare (nicht gezeigt) im Anschluss an oder parallel zu den Speicher-/Rechenpaaren 901/902 und 905/906 in der Inferenz- und/oder Trainingslogik 915 enthalten sein.
  • TRAINING UND EINSATZ VON NEURONALEN NETZEN
  • 10 veranschaulicht das Training und den Einsatz eines tiefen neuronalen Netzes gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 1006 unter Verwendung eines Trainingsdatensatzes 1002 trainiert. In mindestens einer Ausführungsform ist der Trainings-Framework 1004 ein PyTorch-Framework, wohingegen der Trainings-Framework 1004 in anderen Ausführungsformen ein TensorFlow-, Boost-, Caffe-, Microsoft-Cognitive-Toolkit/CNTK-, MXNet-, Chainer-, Keras-, Deeplearning4j- oder ein anderer Trainings-Framework ist. In mindestens einer Ausführungsform trainiert der Trainings-Framework 1004 ein untrainiertes neuronales Netz 1006 und ermöglicht, dass es unter Verwendung der hierin beschriebenen Verarbeitungsressourcen trainiert wird, um ein trainiertes neuronales Netz 1008 zu erzeugen. In mindestens einer Ausführungsform können die Gewichtungen zufällig oder durch Vorabtraining unter Verwendung eines Deep-Belief-Netzes gewählt werden. In mindestens einer Ausführungsform kann das Training entweder auf überwachte, teilweise überwachte oder nicht überwachte Weise durchgeführt werden.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 1006 unter Verwendung von überwachtem Lernen trainiert, wobei der Trainingsdatensatz 1002 eine Eingabe beinhaltet, die mit einer gewünschten Ausgabe für eine Eingabe gepaart ist, oder wobei der Trainingsdatensatz 1002 eine Eingabe beinhaltet, die eine bekannte Ausgabe aufweist, und eine Ausgabe des neuronalen Netzes 1006 manuell bewertet wird. In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 1006 auf überwachte Weise trainiert und es verarbeitet Eingaben aus dem Trainingsdatensatz 1002 und vergleicht die resultierenden Ausgaben mit einem Satz von erwarteten oder gewünschten Ausgaben. In mindestens einer Ausführungsform werden Fehler dann durch das untrainierte neuronale Netz 1006 rückpropagiert. In mindestens einer Ausführungsform stellt der Trainings-Framework 1004 Gewichtungen ein, die das untrainierte neuronale Netz 1006 steuern. In mindestens einer Ausführungsform beinhaltet der Trainings-Framework 1004 Werkzeuge, um zu überwachen, wie gut das untrainierte neuronale Netz 1006 zu einem Modell konvergiert, wie etwa dem trainierten neuronalen Netz 1008, das dazu geeignet ist, korrekte Antworten zu erzeugen, wie etwa in dem Ergebnis 1014, die auf Eingabedaten wie etwa einem neuen Datensatz 1012 basieren. In mindestens einer Ausführungsform trainiert der Trainings-Framework 1004 das untrainierte neuronale Netz 1006 wiederholt, während Gewichtungen eingestellt werden, um eine Ausgabe des untrainierten neuronalen Netzes 1006 unter Verwendung einer Verlustfunktion und eines Einstellungsalgorithmus, wie etwa des stochastischen Gradientenabstiegs, zu verfeinern. In mindestens einer Ausführungsform trainiert der Trainings-Framework 1004 das untrainierte neuronale Netz 1006, bis das untrainierte neuronale Netz 1006 eine gewünschte Genauigkeit erreicht. In mindestens einer Ausführungsform kann das trainierte neuronale Netz 1008 dann zum Implementieren einer beliebigen Anzahl von Operationen des maschinellen Lernens eingesetzt werden.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 1006 unter Verwendung von nicht überwachtem Lernen trainiert, wobei das untrainierte neuronale Netz 1006 versucht, sich selbst unter Verwendung von unbeschrifteten Daten zu trainieren. In mindestens einer Ausführungsform beinhaltet der Trainingsdatensatz 1002 für nicht überwachtes Lernen Eingabedaten ohne assoziierte Ausgabedaten oder „Ground-Truth“-Daten. In mindestens einer Ausführungsform kann das untrainierte neuronale Netz 1006 Gruppierungen innerhalb des Trainingsdatensatzes 1002 lernen und bestimmen, wie einzelne Eingaben mit dem untrainierten Datensatz 1002 in Bezug stehen. In mindestens einer Ausführungsform kann nicht überwachtes Training verwendet werden, um eine selbstorganisierende Karte in dem trainierten neuronalen Netz 1008 zu erzeugen, die dazu in der Lage ist, Operationen durchzuführen, die beim Reduzieren der Dimensionalität des neuen Datensatzes 1012 nützlich sind. In mindestens einer Ausführungsform kann nicht überwachtes Training auch verwendet werden, um Anomaliedetektion durchzuführen, was die Identifizierung von Datenpunkten in dem neuen Datensatz 1012 ermöglicht, die von normalen Mustern des neuen Datensatzes 1012 abweichen.
  • In mindestens einer Ausführungsform kann halbüberwachtes Lernen verwendet werden, wobei es sich um eine Technik handelt, bei der der Trainingsdatensatz 1002 eine Mischung aus beschrifteten und unbeschrifteten Daten beinhaltet. In mindestens einer Ausführungsform kann der Trainings-Framework 1004 verwendet werden, um inkrementelles Lernen durchzuführen, wie etwa durch Transferlerntechniken. In mindestens einer Ausführungsform ermöglicht das inkrementelle Lernen es dem trainierten neuronalen Netz 1008, sich an den neuen Datensatz 1012 anzupassen, ohne das Wissen zu vergessen, das dem trainierten neuronalen Netz 1008 während des anfänglichen Trainings beigebracht wurde.
  • RECHENZENTRUM
  • 11 veranschaulicht ein beispielhaftes Rechenzentrum 1100, in dem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform beinhaltet das Rechenzentrum 1100 eine Rechenzentrumsinfrastrukturschicht 1110, eine Frameworkschicht 1120, eine Software-Schicht 1130 und eine Anwendungsschicht 1140.
  • In mindestens einer Ausführungsform, wie in 11 gezeigt, kann die Rechenzentrumsinfrastrukturschicht 1110 einen Ressourcenorchestrator 1112, gruppierte Rechenressourcen 1114 und Knoten-Rechenressourcen (node computing resources - „Knoten-C.R.s“) 1116(1)-1116(N) beinhalten, wobei „N“ eine positive ganze Zahl darstellt (die eine andere ganze Zahl „N“ sein kann, als in anderen Figuren verwendet). In mindestens einer Ausführungsform können die Knoten-C.R.s 1116(1)-1116(N) eine beliebige Anzahl von zentralen Verarbeitungseinheiten („CPUs“) oder anderen Prozessoren (einschließlich Beschleunigern, feldprogrammierbarer Gate-Arrays (FPGAs), Grafikprozessoren usw.), Speichervorrichtungen 1118(1)-1118(N) (z. B. dynamischer Festwertspeicher, Festkörperspeicher oder Festplattenlaufwerke), Vorrichtungen zur Netz-Eingabe/Ausgabe (network input/output - „NW-E/A“), Netz-Switches, virtuellen Maschinen (virtual machines - „VMs“), Leistungsmodulen und Kühlmodulen usw. beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann es sich bei einer oder mehreren Knoten-C.R.s aus den Knoten-C.R.s 1116(1)-1116(N) um einen Server handeln, der eine oder mehrere der vorstehend erwähnten Rechenressourcen aufweist.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 1114 separate Gruppierungen von Knoten-C.R.s beinhalten, die innerhalb eines oder mehrerer Racks (nicht gezeigt) oder vieler Racks untergebracht sind, die in Rechenzentren an verschiedenen geografischen Standorten untergebracht sind (ebenfalls nicht gezeigt). Separate Gruppierungen von Knoten-C.R.s innerhalb der gruppierten Rechenressourcen 1114 können in mindestens einer Ausführungsform gruppierte Rechen-, Netz-, Arbeitsspeicher- oder Datenspeicherressourcen beinhalten, die dazu konfiguriert oder zugewiesen sein können, eine oder mehrere Arbeitslasten zu unterstützen. In mindestens einer Ausführungsform können mehrere Knoten-C.R.s, die CPUs oder Prozessoren beinhalten, in einem oder mehreren Racks gruppiert sein, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. In mindestens einer Ausführungsform können ein oder mehrere Racks auch eine beliebige Anzahl von Leistungsmodulen, Kühlmodulen und Netzwerk-Switches in beliebiger Kombination beinhalten.
  • In mindestens einer Ausführungsform kann der Ressourcenorchestrator 1112 eine oder mehrere Knoten-C.R.s 1116(1)-1116(N) und/oder gruppierte Rechenressourcen 1114 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 1112 eine Verwaltungsentität für Softwaregestaltungsinfrastruktur (software design infrastructure - „SDI“) für das Rechenzentrum 1100 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 912 Hardware, Software oder eine Kombination davon beinhalten.
  • In mindestens einer Ausführungsform, wie in 11 gezeigt, beinhaltet die Frameworkschicht 1120 einen Aufgaben-Scheduler 1122, einen Konfigurationsverwalter 1124, einen Ressourcenverwalter 1126 und ein verteiltes Dateisystem 1128. In mindestens einer Ausführungsform kann die Frameworkschicht 1120 einen Framework zum Unterstützen von Software 1132 der Software-Schicht 1130 und/oder einer oder mehreren Anwendung(en) 1142 der Anwendungsschicht 1140 beinhalten. In mindestens einer Ausführungsform kann/können die Software 1132 bzw. die Anwendung(en) 1142 webbasierte Dienst-Software oder -Anwendungen beinhalten, wie etwa diejenigen, die von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. In mindestens einer Ausführungsform kann es sich bei der Frameworkschicht 1120 um eine Art freien und quelloffenen Software-Webanwendungs-Frameworks wie etwa Apache Spark™ (im Folgenden „Spark“) handeln, der das verteilte Dateisystem 1128 für die Verarbeitung großer Datenmengen (z. B. „Big Data“) verwenden kann, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann der Aufgaben-Scheduler 1132 einen Spark-Treiber beinhalten, um die Planung von Arbeitslasten zu erleichtern, die durch verschiedene Schichten des Rechenzentrums 1100 unterstützt werden. In mindestens einer Ausführungsform kann der Konfigurationsverwalter 1124 dazu in der Lage sein, unterschiedliche Schichten, wie etwa die Software-Schicht 1130 und die Frameworkschicht 1120, einschließlich Spark und des verteilten Dateisystems 1128, zu konfigurieren, um die Verarbeitung großer Datenmengen zu unterstützen. In mindestens einer Ausführungsform kann der Ressourcenverwalter 1126 dazu in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 1128 und des Aufgaben-Schedulers 1122 abgebildet oder zugewiesen sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen gruppierte Rechenressourcen 1114 in der Rechenzentrumsinfrastrukturschicht 1110 beinhalten. In mindestens einer Ausführungsform kann sich der Ressourcenverwalter 1126 mit dem Ressourcenorchestrator 1112 koordinieren, um diese abgebildeten oder zugewiesenen Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die in der Software-Schicht 1130 enthaltene Software 1132 Software beinhalten, die mindestens durch Abschnitte der Knoten-C.R.s 1116(1)-1116(N), der gruppierten Rechenressourcen 1114 und/oder des verteilten Dateisystems 1128 der Frameworkschicht 1120 verwendet wird. Zu einem oder mehreren Typen von Software können in mindestens einer Ausführungsform Software zum Durchsuchen von Internet-Webseiten, Software zum Scannen von EMails auf Viren, Datenbank-Software und Software für Streaming-Videoinhalte gehören, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform können die in der Anwendungsschicht 1140 enthaltenen Anwendung(en) 1142 einen oder mehrere Typen von Anwendungen beinhalten, die mindestens durch Abschnitte der Knoten-C.R.s 1116(1)-1116(N), der gruppierten Rechenressourcen 1114 und/oder des verteilten Dateisystems 1128 der Frameworkschicht 1120 verwendet werden. Zu einem oder mehreren Typen von Anwendungen können in mindestens einer Ausführungsform eine beliebige Anzahl von einer Genomikanwendung, einer Anwendung zur kognitiven Berechnung und einer Anwendung für maschinelles Lernen gehören, einschließlich Trainings- oder Inferenz-Software, Framework-Software für maschinelles Lernen (z. B. PyTorch, TensorFlow, Caffe usw.) oder anderer Anwendungen für maschinelles Lernen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform können beliebige des Konfigurationsverwalters 1124, des Ressourcenverwalters 1126 und des Ressourcenorchestrators 1112 eine beliebige Anzahl und einen beliebigen Typ von selbstmodifizierenden Handlungen implementieren, die auf einer beliebigen Menge und einem beliebigen Typ von Daten basieren, die auf eine beliebige technisch machbare Weise erfasst wurden. In mindestens einer Ausführungsform können selbstmodifizierende Handlungen einen Rechenzentrumsbetreiber des Rechenzentrums 1100 dahingehend entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Abschnitte eines Rechenzentrums zu vermeiden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum 1100 Werkzeuge, Dienste, Software oder andere Ressourcen beinhalten, um ein oder mehrere Modelle für maschinelles Lernen zu trainieren oder Informationen unter Verwendung eines oder mehrerer Modelle für maschinelles Lernen gemäß einer oder mehrerer hierin beschriebener Ausführungsformen vorherzusagen oder zu inferenzieren. Zum Beispiel kann in mindestens einer Ausführungsform ein Modell für maschinelles Lernen trainiert werden, indem Gewichtungsparameter gemäß einer Architektur eines neuronalen Netzes unter Verwendung von Software und Rechenressourcen berechnet werden, die vorstehend in Bezug auf das Rechenzentrum 1100 beschrieben sind. In mindestens einer Ausführungsform können trainierte Modelle für maschinelles Lernen, die einem oder mehreren neuronalen Netzen entsprechen, verwendet werden, um Informationen unter Verwendung der vorstehend in Bezug auf das Rechenzentrum 1100 beschriebenen Ressourcen zu inferenzieren oder vorherzusagen, indem Gewichtungsparameter verwendet werden, die durch eine oder mehrere hierin beschriebene Trainingstechniken berechnet werden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um Training und/oder Inferenzieren unter Verwendung der vorstehend beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der vorstehend beschriebenen Software- und/oder Hardware-Ressourcen als Dienst konfiguriert sein, um Benutzern das Trainieren oder Durchführen der Ableitung von Informationen zu ermöglichen, wie z. B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 11 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • AUTONOMES FAHRZEUG
  • 12A veranschaulicht ein Beispiel für ein autonomes Fahrzeug 1200 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das autonome Fahrzeug 1200 (hierin alternativ als „Fahrzeug 1200“ bezeichnet) ohne Einschränkung ein Personenkraftwagen sein, wie etwa ein Auto, ein Truck, ein Bus und/oder ein anderer Fahrzeugtyp, der einen oder mehrere Fahrgäste aufnimmt. In mindestens einer Ausführungsform kann das Fahrzeug 1200 ein Sattelschlepper sein, der zum Befördern von Fracht verwendet wird. In mindestens einer Ausführungsform kann das Fahrzeug 1200 ein Flugzeug, ein Roboterfahrzeug oder eine andere Art von Fahrzeug sein.
  • Autonome Fahrzeuge können im Hinblick auf Automatisierungslevels beschrieben werden, die von der National Highway Traffic Safety Administration („NHTSA“), einer Abteilung des US-Verkehrsministeriums, und der Society of Automotive Engineers („SAE“) „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ (z. B. Standard Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, sowie frühere und zukünftige Versionen dieses Standards) definiert sind. In mindestens einer Ausführungsform kann das Fahrzeug 1200 zu einer Funktionalität gemäß einem oder mehreren von Level 1 bis einschließlich Level 5 der Levels für autonomes Fahren in der Lage sein. Zum Beispiel kann in mindestens einer Ausführungsform das Fahrzeug 1200 in Abhängigkeit von der Ausführungsform zu einer bedingten Automatisierung (Level 3), einer hohen Automatisierung (Level 4) und/oder einer vollständigen Automatisierung (Level 5) in der Lage sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ohne Einschränkung Komponenten wie etwa ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z. B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs beinhalten. In mindestens einer Ausführungsform kann das Fahrzeug 1200 ohne Einschränkung ein Antriebssystem 1250 beinhalten, wie etwa eine Brennkraftmaschine, ein Hybridelektrotriebwerk, einen vollelektrischen Motor und/oder einen anderen Typ von Antriebssystem. In mindestens einer Ausführungsform kann das Antriebssystem 1250 mit einem Antriebsstrang des Fahrzeugs 1200 verbunden sein, der ohne Einschränkung ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 1200 zu ermöglichen. In mindestens einer Ausführungsform kann das Antriebssystem 1250 als Reaktion auf das Empfangen von Signalen von einer Drossel/Fahrpedal(en) 1252 gesteuert werden.
  • In mindestens einer Ausführungsform wird ein Lenksystem 1254, das ohne Einschränkung ein Lenkrad beinhalten kann, verwendet, um das Fahrzeug 1200 zu lenken (z. B. entlang eines gewünschten Pfads oder einer gewünschten Route), wenn das Antriebssystem 1250 in Betrieb ist (z. B., wenn das Fahrzeug 1200 in Bewegung ist). In mindestens einer Ausführungsform kann das Lenksystem 1254 Signale von Lenkaktor(en) 1256 empfangen. In mindestens einer Ausführungsform kann ein Lenkrad für die Funktionalität einer vollständigen Automatisierung (Level 5) optional sein. In mindestens einer Ausführungsform kann ein Bremssensorsystem 1246 verwendet werden, um Fahrzeugbremsen als Reaktion auf das Empfangen von Signalen von Bremsaktor(en) 1248 und/oder Bremssensoren zu betreiben.
  • In mindestens einer Ausführungsform stellen Steuerung(en) 1236, die ohne Einschränkung ein oder mehrere Systeme auf einem Chip (system on chips - „SoCs“) (in 12A nicht gezeigt) und/oder Grafikverarbeitungseinheit(en) („GPU(s)“) beinhalten können, einer/einem oder mehreren Komponenten und/oder Systemen des Fahrzeugs 1200 Signale (die z. B. für Befehle repräsentativ sind) bereit. Zum Beispiel können in mindestens einer Ausführungsform die Steuerung(en) 1236 Signale zum Betreiben von Fahrzeugbremsen über die Bremsaktor(en) 1248, zum Betreiben des Lenksystems 1254 über die Lenkaktor(en) 1256, zum Betreiben des Antriebssystems 1250 über die Drossel/Fahrpedal(e) 1252 senden. In mindestens einer Ausführungsform können die Steuerung(en) 1236 eine oder mehrere bordeigene (z. B. integrierte) Rechenvorrichtungen beinhalten, die Sensorsignale verarbeiten und Betriebsbefehle ausgeben (z. B. Signale, die Befehle darstellen), um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Fahren des Fahrzeugs 1200 zu unterstützen. In mindestens einer Ausführungsform können die Steuerung(en) 1236 eine erste Steuerung für Funktionen des autonomen Fahrens, eine zweite Steuerung für funktionelle Sicherheitsfunktionen, eine dritte Steuerung für eine Funktionalität der künstlichen Intelligenz (z. B. maschinelles Sehen), eine vierte Steuerung für eine Infotainment-Funktionalität, eine fünfte Steuerung für Redundanz in Notfällen und/oder andere Steuerungen beinhalten. In mindestens einer Ausführungsform kann eine einzelne Steuerung zwei oder mehr der vorstehenden Funktionalitäten handhaben, können zwei oder mehr Steuerungen eine einzelne Funktionalität handhaben und/oder eine beliebige Kombination davon.
  • In mindestens einer Ausführungsform stellen die Steuerung(en) 1236 Signale zum Steuern einer/eines oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 1200 als Reaktion auf Sensordaten bereit, die von einem oder mehreren Sensoren empfangen werden (z. B. Sensoreingaben). In mindestens einer Ausführungsform können Sensordaten zum Beispiel und ohne Einschränkung empfangen werden von Sensor(en) 1258 von globalen Navigationssatellitensystemen (global navigation satellite systems - „GNSS“) (z. B. Sensor(en) des globalen Positionsbestimmungssystems), RADAR-Sensor(en) 1260, Ultraschallsensor(en) 1262, LIDAR-Sensor(en) 1264, Sensor(en) 1266 einer Trägheitsmesseinheit (inertial measurement unit - „IMU“) (z. B. Beschleunigungsmesser(n), Gyroskop(en), einem Magnetkompass oder Magnetkompassen, Magnetometer(n) usw.), Mikrofon(en) 1296, Stereokamera(s) 1268, Weitsichtkamera(s) 1270 (z. B. Fischaugenkameras), Infrarotkamera(s) 1272, Rundumkamera(s) 1274 (z. B. 360-Grad-Kameras), Langstreckenkameras (in 12A nicht gezeigt), Mittelstreckenkamera(s) (in 12A nicht gezeigt), Geschwindigkeitssensor(en) 1244 (z. B. zum Messen der Geschwindigkeit des Fahrzeugs 1200), Schwingungssensor(en) 1242, Lenksensor(en) 1240, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 1246) und/oder anderen Sensortypen.
  • In mindestens einer Ausführungsform können eine oder mehrere der Steuerung(en) 1236 Eingaben (z. B. durch Eingabedaten dargestellt) von einem Kombiinstrument 1232 des Fahrzeugs 1200 empfangen und Ausgaben (z. B. durch Ausgabedaten, Anzeigedaten usw. dargestellt) über eine Anzeige 1234 einer Mensch-Maschine-Schnittstelle (human-machine interface - „HMI“), einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 1200 bereitstellen. In mindestens einer Ausführungsform können Ausgaben Informationen wie etwa Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. eine hochauflösende Karte (in 12A nicht gezeigt), Standortdaten (z. B. den Standort des Fahrzeugs 1200, wie etwa auf einer Karte), Richtung, Standort anderer Fahrzeuge (z. B. ein Belegungsgitter), Informationen über Objekte und den Status von Objekten, wie durch die Steuerung(en) 1236 wahrgenommen, usw. beinhalten. Zum Beispiel kann in mindestens einer Ausführungsform die HMI-Anzeige 1234 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. eines Straßenschilds, eines Warnschilds, einer umschaltenden Ampel usw.) und/oder Informationen über Fahrmanöver anzeigen, die das Fahrzeug durchgeführt hat, gerade durchführt oder durchführen wird (z. B. jetzt die Spur wechseln, in zwei Meilen die Ausfahrt 34B nehmen usw.).
  • In mindestens einer Ausführungsform beinhaltet das Fahrzeug 1200 ferner eine Netzschnittstelle 1224, die drahtlose Antenne(n) 1226 und/oder Modem(s) zum Kommunizieren über ein oder mehrere Netze verwenden kann. Zum Beispiel kann in mindestens einer Ausführungsform die Netzschnittstelle 1224 dazu in der Lage sein, über Netze mit Long-Term Evolution („LTE“), Breitband-Codemultiplexverfahren (Wideband Code Division Multiple Access - „WCDMA“), Universal Mobile Telecommunications System („UMTS“), Global System for Mobile Communication („GSM“), IMT-CDMA Multi-Carrier („CDMA2000“) usw. zu kommunizieren. In mindestens einer Ausführungsform können die drahtlose(n) Antenne(n) 1226 auch Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeugen, mobilen Vorrichtungen usw.) unter Verwendung von lokalen Netz(en), wie etwa Bluetooth, Bluetooth Low Energy („LE“), Z-Wave, ZigBee usw., und/oder Weitverkehrsnetz(en) mit geringem Leistungsverbrauch (low power wide-area networks - „LPWANs“), wie etwa LoRaWAN-Protokollen, SigFox-Protokollen usw., ermöglichen.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 12A für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 12B veranschaulicht ein Beispiel für Kamerastandorte und Sichtfelder für das autonome Fahrzeug 1200 aus 12A gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform stellen die Kameras und die entsprechenden Sichtfelder eine beispielhafte Ausführungsform dar und sind nicht als einschränkend aufzufassen. Zum Beispiel können in mindestens einer Ausführungsform zusätzliche und/oder alternative Kameras enthalten sein und/oder die Kameras können sich an unterschiedlichen Stellen an dem Fahrzeug 1200 befinden.
  • In mindestens einer Ausführungsform können Kameratypen für Kameras Digitalkameras beinhalten, ohne darauf beschränkt zu sein, die zur Verwendung mit Komponenten und/oder Systemen des Fahrzeugs 1200 ausgelegt sind. In mindestens einer Ausführungsform können die Kamera(s) mit dem Automobilsicherheitsintegritätslevel (automotive safety integrity level - „ASIL“) B und/oder mit einem anderen ASIL betrieben werden. In mindestens einer Ausführungsform können die Kameratypen in Abhängigkeit von der Ausführungsform zu einer beliebigen Bildaufnahmerate in der Lage sein, wie etwa 60 Einzelbilder pro Sekunde (frames per second - fps), 1220 fps, 240 fps usw. In mindestens einer Ausführungsform können Kameras in der Lage sein, Rollblendenverschlüsse, globale Blendenverschlüsse, eine andere Art von Blendenverschluss oder eine Kombination davon zu verwenden. In mindestens einer Ausführungsform kann die Farbfilteranordnung eine Rot-Klar-Klar-Klar(red clear - „RCCC“)--Farbfilteranordnung, eine Rot-Klar-Klar-Blau(red clear blue - „RCCB“)-Farbfilteranordnung, eine Rot-Blau-Grün-Klar(red blue green clear - „RBGC“)-Farbfilteranordnung, eine Foveon X3-Farbfilteranordnung, eine Bayer-Sensor(„RGGB“)-Farbfilteranordnung, eine Monochromsensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung beinhalten. In mindestens einer Ausführungsform können zur Erhöhung der Lichtempfindlichkeit Klar-Pixel-Kameras, wie z. B. Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, verwendet werden.
  • In mindestens einer Ausführungsform können eine oder mehrere der Kamera(s) verwendet werden, um Funktionen der weiterentwickelten Fahrerassistenzsysteme (advanced driver assistance systems - ADAS) durchzuführen (z. B. als Teil einer redundanten oder ausfallsicheren Ausgestaltung). So kann in mindestens einer Ausführungsform eine Multifunktions-Monokamera installiert sein, die Funktionen wie Spurhalteassistent, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bietet. In mindestens einer Ausführungsform können eine oder mehrere der Kamera(s) (z. B. alle Kameras) simultan Bilddaten (z. B. Video) aufnehmen und bereitstellen.
  • In mindestens einer Ausführungsform können eine oder mehrere Kameras in einer Montagebaugruppe, wie etwa einer kundenspezifisch entworfenen (dreidimensional („3D“) gedruckten) Baugruppe, montiert sein, um Streulicht und Reflexionen aus dem Inneren des Fahrzeugs 1200 (z. B. Reflexionen von dem Armaturenbrett, die in den Windschutzscheibenspiegeln reflektiert werden) herauszuschneiden, die die Bilddatenerfassungsfähigkeiten der Kameras beeinträchtigen können. Unter Bezugnahme auf Seitenspiegelmontagebaugruppen können in mindestens einer Ausführungsform die Seitenspiegelbaugruppen kundenspezifisch 3D-gedruckt werden, sodass eine Kameramontageplatte mit einer Form eines Seitenspiegels übereinstimmt. In mindestens einer Ausführungsform können die Kamera(s) in Seitenspiegel integriert sein. In mindestens einer Ausführungsform können bei Seitensichtkameras die Kamera(s) auch innerhalb von vier Säulen an jeder Ecke einer Kabine integriert sein.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte einer Umgebung vor dem Fahrzeug 1200 beinhaltet (z. B. nach vorn gerichtete Kameras), für die Rundumsicht verwendet werden, um dabei zu helfen, nach vorn gerichtete Pfade und Hindernisse zu identifizieren, sowie mithilfe einer oder mehrerer Steuerung(en) 1236 und/oder Steuer-SoCs beim Bereitstellen von Informationen zu helfen, die zum Erzeugen eines Belegungsgitters und/oder Bestimmen bevorzugter Fahrzeugpfade entscheidend sind. In mindestens einer Ausführungsform können nach vorn gerichtete Kameras verwendet werden, um viele ähnliche ADAS-Funktionen wie LIDAR durchzuführen, einschließlich ohne Einschränkung Notbremsung, Fußgängerdetektion und Kollisionsvermeidung. In mindestens einer Ausführungsform können nach vorne gerichtete Kameras auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich, aber nicht beschränkt auf eine Warnung vor dem Verlassen der Fahrspur („LDW“), autonome Geschwindigkeitsregelung („ACC“) und/oder andere Funktionen wie Verkehrszeichenerkennung.
  • In mindestens einer Ausführungsform kann eine Vielfalt an Kameras in einer nach vorn gerichteten Konfiguration verwendet werden, einschließlich zum Beispiel einer monokularen Kameraplattform, die einen Farbbildsensor mit CMOS („complementary metal oxide semiconductor“ - komplementärer Metalloxid-Halbleiter) beinhaltet. In mindestens einer Ausführungsform kann eine Weitsichtkamera 1270 verwendet werden, um Objekte wahrzunehmen, die aus einer Peripherie ins Blickfeld kommen (z. B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl in 12B nur eine Weitsichtkamera 1270 veranschaulicht ist, kann in anderen Ausführungsformen eine beliebige Anzahl (einschließlich null) von Weitsichtkameras an dem Fahrzeug 1200 vorhanden sein. In mindestens einer Ausführungsform kann eine beliebige Anzahl von Langstreckenkamera(s) 1298 (z. B. ein Weitsichtstereokamerapaar) zur tiefenbasierten Objektdetektion verwendet werden, insbesondere für Objekte, für die ein neuronales Netz noch nicht trainiert worden ist. In mindestens einer Ausführungsform können die Langstreckenkamera(s) 1298 auch zur Objektdetektion und -klassifizierung sowie zur grundlegenden Objektverfolgung verwendet werden.
  • In mindestens einer Ausführungsform kann eine beliebige Anzahl der Stereokamera(s) 1268 auch in einer nach vorn gerichteten Konfiguration enthalten sein. In mindestens einer Ausführungsform können eine oder mehrere der Stereokamera(s) 1268 eine integrierte Steuereinheit beinhalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik („FPGA“) und einen Mehrkern-Mikroprozessor mit einer integrierten Schnittstelle für ein Controller Area Network („CAN“) oder Ethernet auf einem einzelnen Chip bereitstellen kann. In mindestens einer Ausführungsform kann eine derartige Einheit verwendet werden, um eine 3D-Karte einer Umgebung des Fahrzeugs 1200 zu erzeugen, einschließlich einer Abstandsschätzung für alle Punkte in einem Bild. In mindestens einer Ausführungsform können eine oder mehrere der Stereokamera(s) 1268 ohne Einschränkung kompakte(n) Stereosichtsensor(en) beinhalten, die ohne Einschränkung zwei Kameraobjektive (je eines links und rechts) und einen Bildverarbeitungschip beinhalten können, die den Abstand von dem Fahrzeug 1200 zu einem Zielobjekt messen und die erzeugten Informationen (z. B. Metadaten) verwenden können, um autonome Notbrems- und Spurverlassenswarnfunktionen zu aktivieren. In mindestens einer Ausführungsform können andere Typen von Stereokamera(s) 1268 zusätzlich oder alternativ zu den hierin beschriebenen verwendet werden.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte der Umgebung seitlich des Fahrzeugs 1200 beinhaltet (z. B. Seitensichtkameras), für die Rundumsicht verwendet werden, wodurch Informationen bereitgestellt werden, die zum Erstellen und Aktualisieren eines Belegungsgitters sowie zum Erzeugen von Seitenaufprallkollisionswarnungen verwendet werden. Zum Beispiel könnten in mindestens einer Ausführungsform die Rundumkamera(s) 1274 (z. B. vier Rundumkameras, wie in 12B veranschaulicht) an dem Fahrzeug 1200 positioniert sein. In mindestens einer Ausführungsform können die Rundumkamera(s) 1274 ohne Einschränkung eine beliebige Anzahl und Kombination von Weitsichtkameras, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder ähnlichen Kameras beinhalten. Zum Beispiel können in mindestens einer Ausführungsform vier Fischaugenkameras an einer Vorderseite, einer Rückseite und Seiten des Fahrzeugs 1200 positioniert sein. In mindestens einer Ausführungsform kann das Fahrzeug 1200 drei Rundumkamera(s) 1274 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kamera(s) (z. B. eine nach vorn gerichtete Kamera) als vierte Rundumsichtkamera ausnutzen.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte einer Umgebung hinter dem Fahrzeug 1200 beinhaltet (z. B. Rückfahrkameras), für die Einparkhilfe, für die Rundumsicht, für Heckkollisionswarnungen und zum Erstellen und Aktualisieren eines Belegungsgitters verwendet werden. In mindestens einer Ausführungsform kann eine große Vielfalt an Kameras verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als nach vorn gerichtete Kamera(s) geeignet sind (z. B. Langstreckenkameras 1298 und/oder Mittelstreckenkamera(s) 1276, Stereokamera(s) 1268, Infrarotkamera(s) 1272 usw.), wie hierin beschrieben.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 12B für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 12C ist ein Blockdiagramm, das eine beispielhafte Systemarchitektur für das autonome Fahrzeug 1200 aus 12A veranschaulicht, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist jede/jedes der Komponenten, Merkmale und Systeme des Fahrzeugs 1200 in 12C als über einen Bus 1202 verbunden veranschaulicht. In mindestens einer Ausführungsform kann der Bus 1202 ohne Einschränkung eine CAN-Datenschnittstelle (hierin alternativ als „CAN-Bus“ bezeichnet) beinhalten. In mindestens einer Ausführungsform kann ein CAN ein Netz innerhalb des Fahrzeugs 1200 sein, das zum Unterstützen beim Steuern verschiedener Merkmale und Funktionen des Fahrzeugs 1200 verwendet wird, wie etwa Betätigung von Bremsen, Beschleunigung, Bremsung, Lenkung, Scheibenwischern usw. In mindestens einer Ausführungsform kann der Bus 1202 so konfiguriert sein, dass er Dutzende oder sogar Hunderte von Knoten aufweist, jeder mit seiner eigenen eindeutigen Kennung (z. B. einer CAN-ID). In mindestens einer Ausführungsform kann der Bus 1202 ausgelesen werden, um Lenkradwinkel, Geschwindigkeit über Grund, Motorumdrehungen pro Minute (revolutions per minute - „RPMs“), Tastenpositionen und/oder andere Fahrzeugstatusindikatoren zu ermitteln. In mindestens einer Ausführungsform kann der Bus 1202 ein CAN-Bus sein, der mit ASIL B konform ist.
  • In mindestens einer Ausführungsform können zusätzlich zu oder alternativ zu CAN auch FlexRay- und/oder Ethernet-Protokolle verwendet werden. In mindestens einer Ausführungsform kann eine beliebige Anzahl von Bussen, die den Bus 1202 bilden, vorhanden sein, die ohne Einschränkung null oder mehr CAN-Busse, null oder mehr FlexRay-Busse, null oder mehr Ethernet-Busse und/oder null oder mehr andere Typen von Bussen unter Verwendung unterschiedlicher Protokolle beinhalten können. In mindestens einer Ausführungsform können zwei oder mehr Busse verwendet werden, um unterschiedliche Funktionen durchzuführen, und/oder zur Redundanz verwendet werden. Zum Beispiel kann ein erster Bus für die Funktionalität der Kollisionsvermeidung verwendet werden und ein zweiter Bus für die Betätigungssteuerung verwendet werden. In mindestens einer Ausführungsform kann jeder Bus des Busses 1202 mit beliebigen Komponenten des Fahrzeugs 1200 kommunizieren und zwei oder mehr Busse des Busses 1202 können mit entsprechenden Komponenten kommunizieren. In mindestens einer Ausführungsform kann jedes einer beliebigen Anzahl von System(en) auf Chip(s) („SoC(s)“) 1204 (wie etwa dem SoC 1204(A) und SoC 1204(B), jede der Steuerung(en) 1236 und/oder jeder Computer innerhalb des Fahrzeugs Zugriff auf die gleichen Eingabedaten (z. B. Eingaben von Sensoren des Fahrzeugs 1200) haben und mit einem gemeinsamen Bus, wie etwa dem CAN-Bus, verbunden sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 eine oder mehrere Steuerung(en) 1236 beinhalten, wie etwa diejenigen, die hierin in Bezug auf 12A beschrieben sind. In mindestens einer Ausführungsform können die Steuerung(en) 1236 für eine Vielfalt an Funktionen verwendet werden. In mindestens einer Ausführungsform können die Steuerung(en) 1236 an beliebige von verschiedenen anderen Komponenten und Systemen des Fahrzeugs 1200 gekoppelt sein und zur Steuerung des Fahrzeugs 1200, der künstlichen Intelligenz des Fahrzeugs 1200, des Infotainments für das Fahrzeug 1200 und/oder anderer Funktionen verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 eine beliebige Anzahl von SoCs 1204 beinhalten. In mindestens einer Ausführungsform kann jedes der SoCs 1204 ohne Einschränkung zentrale Verarbeitungseinheiten („CPU(s)“) 1206, Grafikverarbeitungseinheiten („GPU(s)“) 1208, Prozessor(en) 1210, Cache(s) 1212, einen oder mehrere Beschleuniger 1214, einen oder mehrere Datenspeicher 1216 und/oder andere nicht veranschaulichte Komponenten und Merkmale beinhalten. In mindestens einer Ausführungsform können die SoC(s) 1204 zum Steuern des Fahrzeugs 1200 in einer Vielfalt an Plattformen und Systemen verwendet werden. Zum Beispiel können in mindestens einer Ausführungsform die SoC(s) 1204 in einem System (z. B. System des Fahrzeugs 1200) mit einer hochauflösenden (High Definition - „HD“) Karte 1222 kombiniert werden, die Kartenauffrischungen und/oder -aktualisierungen über die Netzschnittstelle 1224 von einem oder mehreren Servern (in 12C nicht gezeigt) erlangen kann.
  • In mindestens einer Ausführungsform können die CPU(s) 1206 einen CPU-Cluster oder CPU-Komplex (hierin alternativ als „CCPLEX“ bezeichnet) beinhalten. In mindestens einer Ausführungsform können die CPU(s) 1206 mehrere Kerne und/oder Level-Zwei-(„L2“-)Caches beinhalten. Zum Beispiel können in mindestens einer Ausführungsform die CPU(s) 1206 acht Kerne in einer kohärenten Mehrprozessorkonfiguration beinhalten. In mindestens einer Ausführungsform können die CPU(s) 1206 vier Doppelkerncluster beinhalten, wobei jeder Cluster einen dedizierten L2-Cache aufweist (z. B. einen 2 Megabyte (MB) großen L2-Cache). In mindestens einer Ausführungsform können die CPU(s) 1206 (z. B. CCPLEX) so konfiguriert sein, dass sie simultane Clusteroperationen unterstützen, sodass eine beliebige Kombination von Clustern der CPU(s) 1206 zu einem beliebigen gegebenen Zeitpunkt aktiv sein kann.
  • In mindestens einer Ausführungsform können eine oder mehrere der CPU(s) 1206 Leistungsverwaltungsfähigkeiten implementieren, die ohne Einschränkung eines oder mehrere der folgenden Merkmale beinhalten: einzelne Hardwareblöcke können automatisch taktgesteuert werden, wenn sie inaktiv sind, um dynamische Leistung zu sparen; jeder Kerntakt kann gesteuert werden, wenn ein derartiger Kern aufgrund der Ausführung von Wait-for-lnterrupt-(„WFI“-)/Wait-for-Event-(„WFE“-)Anweisungen keine Anweisungen aktiv ausführt; jeder Kern kann unabhängig leistungsgesteuert sein; jeder Kerncluster kann unabhängig taktgesteuert sein, wenn alle Kerne taktgesteuert oder leistungsgesteuert sind; und/oder jeder Kerncluster kann unabhängig leistungsgesteuert sein, wenn alle Kerne leistungsgesteuert sind. In mindestens einer Ausführungsform können die CPU(s) 1206 ferner einen erweiterten Algorithmus zum Verwalten von Leistungszuständen implementieren, bei dem zulässige Leistungszustände und erwartete Aufwachzeiten vorgegeben werden und die Hardware/der Mikrocode bestimmt, in welchen besten Leistungszustand für einen Kern, einen Cluster und einen CCPLEX einzutreten ist. In mindestens einer Ausführungsform können die Verarbeitungskerne vereinfachte Leistungsstatus-Eintragssequenzen in der Software unterstützen, wobei die Arbeit in den Mikrocode ausgelagert wird.
  • In mindestens einer Ausführungsform können die GPU(s) 1208 eine integrierte GPU (hierin alternativ als „iGPU“ bezeichnet) beinhalten. In mindestens einer Ausführungsform können die GPU(s) 1208 programmierbar sein und für parallele Arbeitslasten effizient sein. In mindestens einer Ausführungsform können die GPU(s) 1208 einen erweiterten Tensor-Anweisungssatz verwenden. In mindestens einer Ausführungsform können die GPU(s) 1208 einen oder mehrere Streaming-Mikroprozessoren beinhalten, wobei jeder Streaming-Mikroprozessor einen Level-Eins-(„L1“-)Cache beinhalten kann (z. B. einen L1-Cache mit einer Speicherkapazität von mindestens 96 KB), und zwei oder mehr Streaming-Mikroprozessoren können einen L2-Cache gemeinsam nutzen (z. B. einen L2-Cache mit einer Speicherkapazität von 512 KB). In mindestens einer Ausführungsform können die GPU(s) 1208 mindestens acht Streaming-Mikroprozessoren beinhalten. In mindestens einer Ausführungsform können die GPU(s) 1208 Berechnungs-Anwendungsprogrammierschnittstelle(n) (application programming interface(s) - API(s)) verwenden. In mindestens einer Ausführungsform können die GPU(s) 1208 eine oder mehrere Parallelrechenplattformen und/oder Programmiermodelle (z. B. das CUDA-Modell von NVIDIA) verwenden.
  • In mindestens einer Ausführungsform können eine oder mehrere der GPU(s) 1208 für die beste Rechenleistung in Automobil- und eingebetteten Anwendungsfällen leistungsoptimiert sein. Zum Beispiel könnten in einer Ausführungsform die GPU(s) 1208 auf einer Fin-Feldeffekttransistor-(„FinFET“-)Schaltung hergestellt sein. In mindestens einer Ausführungsform kann jeder Streaming-Mikroprozessor eine Anzahl von Verarbeitungskernen mit gemischter Genauigkeit beinhalten, die in mehrere Blöcke partitioniert sind. Zum Beispiel und ohne Einschränkung könnten 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert sein. In mindestens einer Ausführungsform könnten jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA-Tensorkerne mit gemischter Genauigkeit für Deep-Learning-Matrixarithmetik, ein Level-Null-(„LO“-)Anweisungs-Cache, ein Warp-Scheduler, eine Zuteilungseinheit und/oder eine 64 KB große Registerbank zugewiesen sein. In mindestens einer Ausführungsform können Streaming-Mikroprozessoren unabhängige parallele Integer- und Fließkomma-Datenpfade beinhalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnung und Adressierungsberechnungen zu ermöglichen. In mindestens einer Ausführungsform können Streaming-Mikroprozessoren eine unabhängige Thread-Planungsfunktion beinhalten, um eine feinkörnigere Synchronisierung und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. In mindestens einer Ausführungsform können Streaming-Mikroprozessoren eine Einheit aus kombiniertem L1-Daten-Cache und gemeinsam genutztem Speicher beinhalten, um die Performance zu verbessern, während die Programmierung vereinfacht wird.
  • In mindestens einer Ausführungsform können eine oder mehrere der GPU(s) 1208 einen Speicher mit hoher Bandbreite (high bandwidth memory - „HBM“) und/oder ein 16-GB-HBM2-Speicherteilsystem beinhalten, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In mindestens einer Ausführungsform kann zusätzlich oder alternativ zu HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (synchronous graphics random-access memory - „SGRAM“) verwendet werden, wie etwa ein synchroner Direktzugriffsspeicher vom Graphics-Double-Data-Rate-Typ fünf (graphics double data rate type five - „GDDR5“).
  • In mindestens einer Ausführungsform können die GPU(s) 1208 einheitliche Speichertechnologie beinhalten. In mindestens einer Ausführungsform kann die Unterstützung von Adressübersetzungsdiensten (address translation services - „ATS“) verwendet werden, um zu ermöglichen, dass die GPU(s) 1208 direkt auf Seitentabellen von CPU(s) 1206 zugreifen. In mindestens einer Ausführungsform kann, wenn die Speicherverwaltungseinheit (memory management unit - „MMU“) einer GPU der GPU(s) 1208 einen Fehler erleidet, eine Adressübersetzungsanforderung an die CPU(s) 1206 übertragen werden. Als Reaktion darauf können 2 CPUs der CPU(s) 1206 in mindestens einer Ausführungsform in ihren Seitentabellen nach einer Virtuell-auf-Physisch-Abbildung für eine Adresse suchen und die Übersetzung zurück an die GPU(s) 1208 übertragen. In mindestens einer Ausführungsform kann die einheitliche Speichertechnologie einen einzelnen einheitlichen virtuellen Adressraum für Speicher sowohl der CPU(s) 1206 als auch der GPU(s) 1208 ermöglichen, wodurch die Programmierung der GPU(s) 1208 und die Portierung von Anwendungen auf die GPU(s) 1208 vereinfacht werden.
  • In mindestens einer Ausführungsform können die GPU(s) 1208 eine beliebige Anzahl von Zugriffszählern beinhalten, die die Häufigkeit des Zugriffs der GPU(s) 1208 auf Speicher anderer Prozessoren nachverfolgen können. In mindestens einer Ausführungsform kann der/können die Zugriffszähler dazu beitragen, sicherzustellen, dass Speicherseiten in physischen Speicher eines Prozessors verschoben werden, der am häufigsten auf Seiten zugreift, wodurch die Effizienz für Speicherbereiche, die von mehreren Prozessoren gemeinsam genutzt werden, verbessert wird.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1204 eine beliebige Anzahl von Cache(s) 1212 beinhalten, einschließlich der hierin beschriebenen. In mindestens einer Ausführungsform könnten die Cache(s) 1212 zum Beispiel einen Level-Drei-(„L3“-)Cache beinhalten, der sowohl den CPU(s) 1206 als auch den GPU(s) 1208 zur Verfügung steht (der z. B. mit den CPU(s) 1206 und GPU(s) 1208 verbunden ist). In mindestens einer Ausführungsform können die Cache(s) 1212 einen Rückschreib-Cache beinhalten, der die Zustände von Zeilen nachverfolgen kann, wie etwa durch Verwenden eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). In mindestens einer Ausführungsform kann ein L3-Cache in Abhängigkeit von der Ausführungsform 4 MB Speicher oder mehr beinhalten, obwohl auch kleinere Cache-Größen verwendet werden können.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1204 einen oder mehrere Beschleuniger 1214 beinhalten (z. B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon). In mindestens einer Ausführungsform können die SoC(s) 1204 einen Hardware-Beschleunigungscluster beinhalten, der optimierte Hardware-Beschleuniger und/oder einen großen chipinternen Speicher beinhalten kann. In mindestens einer Ausführungsform kann großer chipinterner Speicher (z. B. 4 MB SRAM) einen Hardware-Beschleunigungscluster zum Beschleunigen neuronaler Netze und anderer Berechnungen ermöglichen. In mindestens einer Ausführungsform kann ein Hardware-Beschleunigungscluster verwendet werden, um die GPU(s) 1208 zu ergänzen und einige Tasks der GPU(s) 1208 auszulagern (z. B. mehr Zyklen der GPU(s) 1208 zum Durchführen anderer Tasks freizumachen). In mindestens einer Ausführungsform könnte der/könnten die Beschleuniger 1214 für zielgerichtete Arbeitslasten (z. B. Wahrnehmung, neuronale Faltungsnetze (convolutional neural networks - „CNNs“), rekurrente neuronale Netze (recurrent neural networks - „RNNs“) usw.) verwendet werden, die stabil genug sind, um für eine Beschleunigung geeignet zu sein. In mindestens einer Ausführungsform kann ein CNN ein regionsbasiertes oder regionales neuronales Faltungsnetzwerk („RCNN“) und schnelles RCNN (wie z. B. für die Objekterkennung verwendet) oder eine andere Art von CNN beinhalten.
  • In mindestens einer Ausführungsform kann der/können die Beschleuniger 1214 (z. B. Hardware-Beschleunigungscluster) einen oder mehrere Deep-Learning-Beschleuniger (deep learning accelerator - „DLA“) beinhalten. DLA(s) können in mindestens einer Ausführungsform ohne Einschränkung eine oder mehrere Tensor-Verarbeitungseinheiten (Tensor processing units - „TPUs“) beinhalten, die so konfiguriert sein können, dass sie zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferenzieren bereitstellen. In mindestens einer Ausführungsform können die TPUs Beschleuniger sein, die zum Durchführen von Bildverarbeitungsfunktionen (z. B. für CNNs, RCNNs usw.) konfiguriert und optimiert sind. In mindestens einer Ausführungsform kann/können der/die DLA(s) ferner für einen spezifischen Satz von Arten von neuronalen Netzwerken und Gleitkommaoperationen sowie für das Inferenzieren optimiert sein. In mindestens einer Ausführungsform kann das Design der DLA(s) mehr Leistung pro Millimeter bereitstellen als eine typische Universal-GPU und übertrifft typischerweise die Leistung einer CPU bei weitem. In mindestens einer Ausführungsform kann/können die TPU(s) mehrere Funktionen durchführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die zum Beispiel INT8-, INT16- und FP16-Datenarten sowohl für Merkmale als auch für Gewichtungen sowie Postprozessorfunktionen unterstützt. In mindestens einer Ausführungsform können die DLA(s) neuronale Netze, insbesondere CNNs, an verarbeiteten oder unverarbeiteten Daten für beliebige einer Vielfalt von Funktionen schnell und effizient ausführen, darunter zum Beispiel und ohne Einschränkung: ein CNN für die Identifizierung und Detektion von Objekten unter Verwendung von Daten von Kamerasensoren; ein CNN für die Abstandsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN für die Detektion und Identifizierung und Detektion von Einsatzfahrzeugen unter Verwendung von Daten von Mikrofonen; ein CNN für die Gesichtserkennung und Identifizierung von Fahrzeugbesitzern unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheits- und/oder sicherungsbezogene Ereignisse.
  • In mindestens einer Ausführungsform können die DLA(s) eine beliebige Funktion der GPU(s) 1208 durchführen und durch Verwenden eines Inferenzbeschleunigers kann ein Gestalter zum Beispiel entweder DLA(s) oder GPU(s) 1208 für eine beliebige Funktion anvisieren. In mindestens einer Ausführungsform kann sich ein Gestalter zum Beispiel auf die Verarbeitung von CNNs und Gleitkommaoperationen an den DLA(s) konzentrieren und andere Funktionen den GPU(s) 1208 und/oder Beschleuniger(n) 1214 überlassen.
  • In mindestens einer Ausführungsform kann der/können die Beschleuniger 1214 einen programmierbaren Sichtbeschleuniger (programmable vision accelerator - „PVA“) beinhalten, der hierin alternativ als Beschleuniger für maschinelles Sehen bezeichnet werden kann. In mindestens einer Ausführungsform kann der PVA zum Beschleunigen von Algorithmen für maschinelles Sehen für weiterentwickelte Fahrerassistenzsysteme („ADAS“) 1238, autonomes Fahren, Augmented-Reality-(„AR“-)Anwendungen und/oder Virtual-Reality-(„VR“-)Anwendungen ausgestaltet und konfiguriert sein. In mindestens einer Ausführungsform kann der PVA ein Gleichgewicht zwischen Rechenleistung und Flexibilität bereitstellen. In mindestens einer Ausführungsform kann jeder PVA zum Beispiel und ohne Einschränkung eine beliebige Anzahl von Reduced-lnstruction-Set-Computer-(„RISC“-)Kernen, direkten Speicherzugriff (direct memory access - „DMA“) und/oder eine beliebige Anzahl von Vektorprozessoren beinhalten.
  • In mindestens einer Ausführungsform können RISC-Kerne mit Bildsensoren (z. B. Bildsensoren beliebiger hierin beschriebener Kameras), Bildsignalprozessor(en) usw. interagieren. In mindestens einer Ausführungsform kann jeder RISC-Kern eine beliebige Menge an Speicher beinhalten. In mindestens einer Ausführungsform können die RISC-Kerne je nach Ausführungsform eines von mehreren Protokollen verwenden. In mindestens einer Ausführungsform können die RISC-Kerne ein Echtzeitbetriebssystem (real-time operating system - „RTOS“) ausführen. In mindestens einer Ausführungsform können die RISC-Kerne unter Verwendung einer oder mehrerer Vorrichtungen mit integrierten Schaltungen, anwendungsspezifischen integrierten Schaltungen („ASICs“) und/oder Speichervorrichtungen implementiert sein. In mindestens einer Ausführungsform könnten die RISC-Kerne beispielsweise einen Anweisungs-Cache und/oder einen eng gekoppelten RAM beinhalten.
  • In mindestens einer Ausführungsform kann DMA es den Komponenten des PVA ermöglichen, unabhängig von den CPU(s) 1206 auf Systemspeicher zuzugreifen. In mindestens einer Ausführungsform kann DMA eine beliebige Anzahl von Merkmalen unterstützen, die zum Bereitstellen der Optimierung eines PVA verwendet werden, einschließlich der Unterstützung von mehrdimensionaler Adressierung und/oder zirkulärer Adressierung, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann ein DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die ohne Einschränkung Blockbreite, Blockhöhe, Blocktiefe, horizontales Block-Stepping, vertikales Block-Stepping und/oder Tiefen-Stepping aufweisen können.
  • In mindestens einer Ausführungsform können Vektorprozessoren programmierbare Prozessoren sein, die so konstruiert sein können, dass sie die Programmierung für Computervisionsalgorithmen effizient und flexibel ausführen und Signalverarbeitungsfähigkeiten bereitstellen. In mindestens einer Ausführungsform kann ein PVA einen PVA-Kern und zwei Vektorverarbeitungsteilsystempartitionen beinhalten. In mindestens einer Ausführungsform kann ein PVA-Kern ein Prozessorteilsystem, DMA-Engine(s) (z. B. zwei DMA-Engines) und/oder andere Peripheriegeräte beinhalten. In mindestens einer Ausführungsform kann ein Vektorverarbeitungsteilsystem als primäre Verarbeitungs-Engine eines PVA betreiben werden und eine Vektorverarbeitungseinheit (vector processing unit - „VPU“), einen Anweisungs-Cache und/oder Vektorspeicher (z. B. „VMEM“) beinhalten. In mindestens einer Ausführungsform kann der VPU-Kern einen digitalen Signalprozessor beinhalten, wie zum Beispiel einen digitalen Single-lnstruction-Multiple-Data-(„SIMD“-)Very-Longlnstruction-Word-(„VLIW“-)Signalprozessor. In mindestens einer Ausführungsform kann eine Kombination aus SIMD und VLIW den Durchsatz und die Geschwindigkeit erhöhen.
  • In mindestens einer Ausführungsform kann jeder der Vektorprozessoren einen Anweisungs-Cache beinhalten und an dedizierten Speicher gekoppelt sein. Infolgedessen kann in mindestens einer Ausführungsform jeder der Vektorprozessoren so konfiguriert sein, dass er unabhängig von anderen Vektorprozessoren arbeitet. In mindestens einer Ausführungsform können Vektorprozessoren, die in einem bestimmten PVA beinhaltet sind, dazu konfiguriert sein, Datenparallelität einzusetzen. Zum Beispiel kann in mindestens einer Ausführungsform eine Vielzahl von Vektorprozessoren, die in einem einzelnen PVA enthalten ist, einen gemeinsamen Algorithmus des maschinellen Sehens ausführen, jedoch an unterschiedlichen Regionen eines Bildes. In mindestens einer Ausführungsform können die in einem konkreten PVA enthaltenen Vektorprozessoren simultan unterschiedliche Algorithmen des maschinellen Sehens an einem Bild ausführen oder auch unterschiedliche Algorithmen an sequenziellen Bildern oder Abschnitten eines Bildes ausführen. In mindestens einer Ausführungsform kann unter anderem eine beliebige Anzahl PVAs in einem Hardware-Beschleunigungscluster enthalten sein und eine beliebige Anzahl von Vektorprozessoren in jedem PVA enthalten sein. In mindestens einer Ausführungsform kann der PVA zusätzlichen Speicher für Fehlerkorrekturcode (error correcting code - „ECC“) beinhalten, um die Gesamtsystemsicherheit zu erhöhen.
  • In mindestens einer Ausführungsform kann der/können die Beschleuniger 1214 ein chipinternes Netz für maschinelles Sehen und statischen Direktzugriffsspeicher (static random-access memory - „SRAM“) beinhalten, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 1214 bereitzustellen. In mindestens einer Ausführungsform kann chipinterner Speicher mindestens 4 MB SRAM beinhalten, der zum Beispiel und ohne Einschränkung acht feldkonfigurierbare Speicherblöcke umfasst, auf die sowohl ein PVA als auch ein DLA zugreifen können. In mindestens einer Ausführungsform kann jedes Paar von Speicherblöcken eine weiterentwickelte Peripheriebus(advanced peripheral bus - „APB“)-Schnittstelle, eine Konfigurationsschaltung, eine Steuerung und einen Multiplexer beinhalten. In mindestens einer Ausführungsform kann jeder beliebige Speichertyp verwendet werden. In mindestens einer Ausführungsform können ein PVA und ein DLA über einen Backbone auf den Speicher zugreifen, der einem PVA und einem DLA einen Hochgeschwindigkeitszugriff auf den Speicher ermöglicht. In mindestens einer Ausführungsform kann ein Backbone ein chipinternes Netzwerk für maschinelles Sehen beinhalten, das einen PVA und einen DLA mit Speicher zusammenschaltet (z. B. unter Verwendung eines APB).
  • In mindestens einer Ausführungsform kann ein chipinternes Netzwerk für maschinelles Sehen eine Schnittstelle beinhalten, die vor der Übertragung eines beliebigen Steuersignals/einer beliebigen Adresse/beliebiger Daten bestimmt, dass sowohl ein PVA als auch ein DLA einsatzbereite und gültige Signale bereitstellen. In mindestens einer Ausführungsform kann eine Schnittstelle separate Phasen und separate Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-artige Kommunikation für eine kontinuierliche Datenübertragung bereitstellen. In mindestens einer Ausführungsform kann eine Schnittstelle mit den Standards International Organization for Standardization („ISO“) 26262 oder International Electrotechnical Commission („IEC“) 61508 konform sein, obwohl andere Standards und Protokolle verwendet werden können.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1204 einen Echtzeitstrahlverfolgungs-Hardware-Beschleuniger beinhalten. In mindestens einer Ausführungsform kann der Echtzeitstrahlverfolgungs-Hardware-Beschleuniger verwendet werden, um schnell und effizient Positionen und Ausdehnungen von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeitvisualisierungssimulationen zu erzeugen, für die RADAR-Signalinterpretation, für die Schallausbreitungssynthese und/oder -analyse, für die Simulation von SONAR-Systemen, für die allgemeine Wellenausbreitungssimulation, für den Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder für andere Funktionen und/oder für andere Anwendungen.
  • In mindestens einer Ausführungsform kann der/können die Beschleuniger 1214 ein breites Spektrum von Verwendungen für das autonome Fahren aufweisen. In mindestens einer Ausführungsform kann ein PVA für wichtige Verarbeitungsstufen im ADAS und in autonomen Fahrzeugen verwendet werden. In mindestens einer Ausführungsform eignen sich die Fähigkeiten eines PVAs gut für algorithmische Bereiche, die eine vorhersehbare Verarbeitung bei geringer Leistung und geringer Latenz benötigen. Anders ausgedrückt, zeigt ein PVA eine gute Rechenleistung für halbdichte oder dichte reguläre Berechnungen, auch an kleinen Datensätzen, die vorhersagbare Laufzeiten bei niedriger Latenz und niedriger Leistung erfordern könnten. In mindestens einer Ausführungsform, wie etwa in dem Fahrzeug 1200, könnten die PVAs so ausgestaltet sein, dass sie klassische Algorithmen des maschinellen Sehens ausführen, da sie bei der Objektdetektion und beim Betreiben an Integermathematik effizient sein können.
  • Zum Beispiel wird gemäß mindestens einer Ausführungsform der Technologie ein PVA verwendet, um maschinelles Stereo-Sehen durchzuführen. In mindestens einer Ausführungsform kann bei einigen Beispielen ein auf semiglobalem Matching basierender Algorithmus verwendet werden, obwohl dies nicht als Einschränkung gedacht ist. In mindestens einer Ausführungsform verwenden Anwendungen für autonomes Fahren der Stufen 3-5 Bewegungsschätzung/Stereo-Abgleich spontan (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurerkennung usw.). In mindestens einer Ausführungsform kann ein PVA Funktionen des maschinellen Stereo-Sehens an Eingaben von zwei monokularen Kameras durchführen.
  • In mindestens einer Ausführungsform kann ein PVA verwendet werden, um dichten optischen Fluss durchzuführen. Zum Beispiel könnte ein PVA in mindestens einer Ausführungsform RADAR-Rohdaten verarbeiten (z. B. unter Verwendung einer schnellen 4D-Fourier-Transformation), um verarbeitete RADAR-Daten bereitzustellen. In mindestens einer Ausführungsform wird ein PVA für die Laufzeit-Tiefenverarbeitung verwendet, indem zum Beispiel Laufzeit-Rohdaten verarbeitet werden, um verarbeitete Laufzeitdaten bereitzustellen.
  • In mindestens einer Ausführungsform kann ein DLA verwendet werden, um jede Art von Netzwerk zu betreiben, um die Steuerung und die Fahrsicherheit zu verbessern, einschließlich beispielsweise und ohne Einschränkung eines neuronalen Netzes, das für jede Objekterkennung ein Maß für das Vertrauen ausgibt. In mindestens einer Ausführungsform kann das Vertrauen als Wahrscheinlichkeit dargestellt oder interpretiert werden, oder als relative „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen. In mindestens einer Ausführungsform ermöglicht es ein Konfidenzmaß dem System, darüber hinaus Entscheidungen darüber zu treffen, welche Erkennungen als echte positive Erkennungen und welche als falsch positive Erkennungen betrachtet werden sollen. In mindestens einer Ausführungsform kann ein System einen Schwellenwert für die Zuverlässigkeit festlegen und nur Erkennungen, die den Schwellenwert überschreiten, als echte positive Erkennungen betrachten. In einer Ausführungsform, in der ein automatisches Notbremssystem („AEB“) verwendet wird, würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was natürlich unerwünscht ist. In mindestens einer Ausführungsform können sehr sichere Erkennungen als Auslöser für ein AEB angesehen werden. In mindestens einer Ausführungsform kann ein DLA ein neuronales Netz zur Regression des Konfidenzwerts ausführen. In mindestens einer Ausführungsform kann das neuronale Netz als seine Eingabe mindestens eine Teilmenge von Parametern verwenden, wie etwa die Abmessungen des Begrenzungsrahmens, die (z. B. von einem anderen Teilsystem) erlangte Grundebenenschätzung, die Ausgabe von IMU-Sensor(en) 1266, die mit der Ausrichtung des Fahrzeugs 1200 korreliert, den Abstand, die 3D-Standortschätzungen des Objekts, die von dem neuronalen Netz und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 1264 oder RADAR-Sensor(en) 1260) erlangt werden, sowie andere.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1204 einen oder mehrere Datenspeicher 1216 (z. B. Speicher) beinhalten. In mindestens einer Ausführungsform kann es sich bei den Datenspeicher(n) 1216 um chipinternen Speicher der SoC(s) 1204 handeln, der neuronale Netze speichern kann, die auf den GPU(s) 1208 und/oder einem DLA ausgeführt werden sollen. In mindestens einer Ausführungsform kann die Kapazität der Datenspeicher(s) 1216 groß genug sein, um mehrere Instanzen von neuronalen Netzen zur Redundanz und Sicherheit zu speichern. In mindestens einer Ausführungsform kann der/können die Datenspeicher 1216 L2- oder L3-Cache(s) umfassen.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1204 eine beliebige Anzahl von Prozessor(en) 1210 (z. B. eingebettete Prozessoren) beinhalten. In mindestens einer Ausführungsform können die Prozessor(en) 1210 einen Booting- und Leistungsverwaltungsprozessor beinhalten, der ein dedizierter Prozessor und Teilsystem sein kann, um Booting-Leistungs- und -verwaltungsfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. In mindestens einer Ausführungsform kann der Booting- und Leistungsverwaltungsprozessor ein Teil einer Booting-Sequenz der SoC(s) 1204 sein und Laufzeit-Leistungsverwaltungsdienste bereitstellen. In mindestens einer Ausführungsform kann ein Booting-Leistungs- und Verwaltungsprozessor Takt- und Spannungsprogrammierung, Unterstützung bei Übergängen des Systems in einen Zustand mit niedriger Leistung, Verwaltung von Thermo- und Temperatursensoren der SoC(s) 1204 und/oder Verwaltung von Leistungszuständen der SoC(s) 1204 bereitstellen. In mindestens einer Ausführungsform kann jeder Temperatursensor als Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und die SoC(s) 1204 können Ringoszillatoren verwenden, um Temperaturen von CPU(s) 1206, GPU(s) 1208 und/oder Beschleuniger(n) 1214 zu detektieren. Falls bestimmt wird, dass Temperaturen einen Schwellenwert überschreiten, kann in mindestens einer Ausführungsform ein Booting- und Leistungsverwaltungsprozessor dann in eine Temperaturfehlerroutine eintreten und die SoC(s) 1204 in einen Zustand mit niedrigerer Leistung versetzen und/oder das Fahrzeug 1200 in einen Modus des Fahrens zu einem sicheren Halt versetzen (z. B. das Fahrzeug 1200 zu einem sicheren Halt bringen).
  • In mindestens einer Ausführungsform können die Prozessor(en) 1210 ferner einen Satz von eingebetteten Prozessoren beinhalten, die als Audioverarbeitungs-Engine dienen können, die ein Audioteilsystem sein kann, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen sowie eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In mindestens einer Ausführungsform ist eine Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • In mindestens einer Ausführungsform können die Prozessor(en) 1210 ferner eine stets eingeschaltete Prozessor-Engine beinhalten, die notwendige Hardware-Merkmale zum Unterstützen der Sensorverwaltung bei niedriger Leistung und der Aufweck-Anwendungsfälle bereitstellen kann. In mindestens einer Ausführungsform kann die stets eingeschaltete Prozessor-Engine ohne Einschränkung einen Prozessorkern, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Zeitgeber und Unterbrechungssteuerungen), verschiedene E/A-Steuerungsperipheriegeräte und Routing-Logik beinhalten.
  • In mindestens einer Ausführungsform können die Prozessor(en) 1210 ferner eine Sicherheitscluster-Engine beinhalten, die ohne Einschränkung ein dediziertes Prozessorteilsystem zum Handhaben der Sicherheitsverwaltung für Automobilanwendungen beinhaltet. In mindestens einer Ausführungsform kann eine Sicherheitscluster-Engine ohne Einschränkung zwei oder mehr Prozessorkerne, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Zeitgeber, eine Unterbrechungssteuerung usw.) und/oder Routing-Logik beinhalten. In einem Sicherheitsmodus können zwei oder mehr Kerne in mindestens einer Ausführungsform in einem Gleichschrittmodus arbeiten und als ein einzelner Kern mit einer Vergleichslogik funktionieren, um beliebige Unterschiede zwischen ihren Vorgängen zu erkennen. In mindestens einer Ausführungsform können die Prozessor(en) 1210 ferner eine Echtzeitkamera-Engine beinhalten, die ohne Einschränkung ein dediziertes Prozessorteilsystem zum Handhaben der Echtzeitkameraverwaltung beinhalten kann. In mindestens einer Ausführungsform können die Prozessor(en) 1210 ferner einen Signalprozessor mit hohem Dynamikbereich beinhalten, der ohne Einschränkung einen Bildsignalprozessor beinhalten kann, der eine Hardware-Engine ist, die Teil einer Kameraverarbeitungspipeline ist.
  • In mindestens einer Ausführungsform können die Prozessor(en) 1210 einen Videobildkompositor beinhalten, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Videonachverarbeitungsfunktionen implementiert, die durch eine Videowiedergabeanwendung benötigt werden, um ein endgültiges Bild für das Fenster eines Wiedergabeprogramms zu erzeugen. In mindestens einer Ausführungsform kann ein Videobildkompositor eine Objektivverzeichnungskorrektur an den Weitsichtkamera(s) 1270, Rundumkamera(s) 1274 und/oder kabineninternen Überwachungskamerasensor(en) durchführen. In mindestens einer Ausführungsform werden die kabineninternen Überwachungskamerasensor(en) vorzugsweise durch ein neuronales Netz überwacht, das auf einer anderen Instanz des SoC 1204 läuft und so konfiguriert ist, dass es Ereignisse in der Kabine erkennt und entsprechend reagiert. In mindestens einer Ausführungsform kann ein kabineninternes System ohne Einschränkung Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, ein Ziel des Fahrzeugs zu ändern, ein Infotainmentsystem des Fahrzeugs und dessen Einstellungen zu aktivieren oder zu ändern oder sprachaktiviertes Surfen im Internet bereitzustellen. In mindestens einer Ausführungsform stehen einem Fahrer bestimmte Funktionen zur Verfügung, wenn ein Fahrzeug in einem autonomen Modus betrieben wird, und sind ansonsten deaktiviert.
  • In mindestens einer Ausführungsform kann ein Videobildkompositor eine erweiterte zeitliche Rauschunterdrückung sowohl für die räumliche als auch für die zeitliche Rauschunterdrückung beinhalten. Zum Beispiel bei mindestens einer Ausführungsform, wenn Bewegung in einem Video auftritt, gewichtet die Rauschunterdrückung die räumliche Information angemessen und verringert Gewichtungen der Information, die von benachbarten Bildern geliefert wird. In mindestens einer Ausführungsform, in der ein Bild oder ein Abschnitt eines Bildes keine Bewegung beinhaltet, kann die durch den Videobildkompositor durchgeführte zeitliche Rauschunterdrückung Informationen aus einem vorherigen Bild verwenden, um das Rauschen in einem derzeitigen Bild zu unterdrücken.
  • In mindestens einer Ausführungsform kann ein Videobildkompositor auch so konfiguriert sein, dass er eine Stereoentzerrung an den eingegebenen Stereoobjektiv-Einzelbildern durchführt. In mindestens einer Ausführungsform kann ein Videobildkompositor ferner für die Benutzerschnittstellenzusammensetzung verwendet werden, wenn ein Desktop des Betriebssystems in Verwendung ist und die GPU(s) 1208 nicht zum kontinuierlichen Rendern neuer Oberflächen erforderlich sind. Wenn die GPU(s) 1208 eingeschaltet sind und aktiv 3D-Rendering durchführen, kann in mindestens einer Ausführungsform ein Videobildkompositor verwendet werden, um die GPU(s) 1208 abzuladen, um die Rechenleistung und Reaktionsfähigkeit zu verbessern.
  • In mindestens einer Ausführungsform können ein oder mehrere SoC der SoC(s) 1204 ferner eine serielle Mobile-Industry-Processor-Interface-(„MIPI“-)Kameraschnittstelle zum Empfangen von Videos und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock beinhalten, der für eine Kamera und verwandte Pixeleingabefunktionen verwendet werden kann. In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1204 ferner Eingabe/Ausgabe-Steuerung(en) beinhalten, die durch Software gesteuert werden können und zum Empfangen von E/A-Signalen verwendet werden können, die keiner bestimmten Rolle zugewiesen sind.
  • In mindestens einer Ausführungsform können ein oder mehrere SoC der SoC(s) 1204 ferner eine breite Palette von Peripherieschnittstellen beinhalten, um die Kommunikation mit Peripheriegeräten, Audiocodierern/-decodierern („Codecs“), Leistungsverwaltung und/oder anderen Vorrichtungen zu ermöglichen. In mindestens einer Ausführungsform können die SoC(s) 1204 verwendet werden, um Daten von Kameras (z. B. über Gigabit-Multimedia-Serial-Link- und Ethernet-Kanäle verbunden), Sensoren (z. B. LIDAR-Sensor(en) 1264, RADAR-Sensor(en) 1260 usw., die über Ethernet-Kanäle verbunden sein können), Daten von dem Bus 1202 (z. B. Geschwindigkeit des Fahrzeugs 1200, Lenkradposition usw.), Daten von GNSS-Sensor(en) 1258 (z. B. über einen Ethernet-Bus oder einen CAN-Bus verbunden) usw. zu verarbeiten. In mindestens einer Ausführungsform können ein oder mehrere SoC der SoC(s) 1204 ferner dedizierte Massenspeichersteuerungen mit hoher Rechenleistung beinhalten, die eigene DMA-Engines beinhalten können und die verwendet werden können, um CPU(s) 1206 routinemäßige Datenverwaltungs-Tasks abzunehmen.
  • In mindestens einer Ausführungsform können die SoC(s) 1204 eine Ende-zu-Ende-Plattform mit einer flexiblen Architektur sein, die die Automatisierungslevels 3-5 überspannt und dadurch eine umfassende funktionelle Sicherheitsarchitektur bereitstellt, die Techniken des maschinellen Sehens und des ADAS für Diversität und Redundanz ausnutzt und effizient einsetzt und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftwarestapel zusammen mit Deep-Learning-Werkzeugen bereitstellt. In mindestens einer Ausführungsform können die SoC(s) 1204 schneller, zuverlässiger und sogar energieeffizienter und platzeffizienter sein als herkömmliche Systeme. Zum Beispiel können in mindestens einer Ausführungsform der/die Beschleuniger 1214, wenn sie mit den CPU(s) 1206, GPU(s) 1208 und Datenspeicher(n) 1216 kombiniert sind, eine schnelle, effiziente Plattform für autonome Fahrzeuge der Levels 3-5 bereitstellen.
  • In mindestens einer Ausführungsform können Algorithmen des maschinellen Sehens auf CPUs ausgeführt werden, die unter Verwendung einer Programmiersprache auf hohem Level, wie etwa C, konfiguriert werden können, um eine große Vielfalt von Verarbeitungsalgorithmen über eine große Vielfalt von visuellen Daten auszuführen. In mindestens einer Ausführungsform sind die CPUs jedoch oft nicht in der Lage, die Performance-Anforderungen vieler Anwendungen des maschinellen Sehens zu erfüllen, wie z. B. in Bezug auf die Ausführungszeit und den Leistungsverbrauch. In mindestens einer Ausführungsform sind viele CPUs nicht dazu in der Lage, komplexe Objektdetektionsalgorithmen in Echtzeit auszuführen, die in fahrzeuginternen ADAS-Anwendungen und in praktischen autonomen Fahrzeugen der Levels 3-5 verwendet werden.
  • Die hierin beschriebenen Ausführungsformen ermöglichen es, dass mehrere neuronale Netze simultan und/oder sequenziell durchgeführt und die Ergebnisse miteinander kombiniert werden, um eine autonome Fahrfunktionalität der Levels 3-5 zu ermöglichen. Zum Beispiel kann in mindestens einer Ausführungsform ein CNN, das auf einem DLA oder einer diskreten GPU (z. B. GPU(s) 1220) ausgeführt wird, eine Text- und Worterkennung beinhalten, die das Lesen und Verstehen von Verkehrsschildern ermöglicht, einschließlich Schildern, für die ein neuronales Netz nicht speziell trainiert worden ist. In mindestens einer Ausführungsform kann ein DLA ferner ein neuronales Netz beinhalten, das dazu in der Lage ist, ein Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis davon bereitzustellen und dieses semantische Verständnis an Pfadplanungsmodule weiterzugeben, die auf einem CPU-Komplex laufen.
  • In mindestens einer Ausführungsform können mehrere neuronale Netze simultan ausgeführt werden, wie für das Fahren bei Level 3, 4 oder 5. In mindestens einer Ausführungsform kann zum Beispiel ein Warnschild mit der Aufschrift „Vorsicht: Blinkende Lichter weisen auf Vereisung hin“ zusammen mit einem elektrischen Licht durch mehrere neuronale Netze unabhängig oder gemeinsam interpretiert werden. In mindestens einer Ausführungsform kann ein solches Warnschild selbst von einem ersten eingesetzten neuronalen Netz (z. B. einem trainierten neuronalen Netz) als Verkehrsschild identifiziert werden, und der Text „Blinkende Lichter deuten auf Glatteis hin“ kann von einem zweiten eingesetzten neuronalen Netz interpretiert werden, das die (vorzugsweise auf einem CPU-Komplex ausgeführte) Wegplanungssoftware des Fahrzeugs darüber informiert, dass, wenn blinkende Lichter erkannt werden, Glatteis vorliegt. In mindestens einer Ausführungsform kann ein blinkendes Licht identifiziert werden, indem ein drittes eingesetztes neuronales Netz über mehrere Einzelbilder hinweg betrieben wird, das eine Pfadplanungssoftware des Fahrzeugs über ein Vorhandensein (oder ein Nichtvorhandensein) von blinkenden Lichtern informiert. In mindestens einer Ausführungsform können alle drei neuronalen Netze simultan laufen, wie etwa innerhalb eines DLA und/oder auf GPU(s) 1208.
  • In mindestens einer Ausführungsform kann ein CNN zur Gesichtserkennung und Fahrzeugbesitzeridentifizierung Daten von Kamerasensoren verwenden, um das Vorhandensein eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1200 zu identifizieren. In mindestens einer Ausführungsform kann eine stets eingeschaltete Sensorverarbeitungs-Engine verwendet werden, um ein Fahrzeug zu entriegeln, wenn sich ein Besitzer einer Fahrertür nähert und Lichter einschaltet, und um in einem Sicherheitsmodus ein derartiges Fahrzeug zu deaktivieren, wenn ein Besitzer ein derartiges Fahrzeug verlässt. Auf diese Weise stellen die SoC(s) 1204 Sicherheit gegen Diebstahl und/oder Carjacking bereit.
  • In mindestens einer Ausführungsform kann ein CNN zur Detektion und Identifizierung von Einsatzfahrzeugen Daten von Mikrofonen 1296 verwenden, um Sirenen von Einsatzfahrzeugen zu detektieren und zu identifizieren. In mindestens einer Ausführungsform verwenden die SoC(s) 1204 ein CNN zum Klassifizieren von Umgebungs- und Stadtgeräuschen sowie zum Klassifizieren von visuellen Daten. In mindestens einer Ausführungsform wird ein CNN, das auf einem DLA läuft, dafür trainiert, eine relative Annäherungsgeschwindigkeit eines Einsatzfahrzeugs zu identifizieren (z. B. durch Verwenden eines Dopplereffekts). In mindestens einer Ausführungsform kann ein CNN auch dafür trainiert werden, Einsatzfahrzeuge zu identifizieren, die für ein lokales Gebiet, in dem ein Fahrzeug betrieben wird, spezifisch sind, wie durch die GNSS-Sensor(en) 1258 identifiziert. In mindestens einer Ausführungsform versucht ein CNN, wenn es in Europa betrieben wird, europäische Sirenen zu detektieren, und in Nordamerika versucht ein CNN, nur nordamerikanische Sirenen zu identifizieren. In mindestens einer Ausführungsform kann, sobald ein Einsatzfahrzeug detektiert wird, ein Steuerprogramm verwendet werden, um mit der Hilfe der Ultraschallsensor(en) 1262 eine Sicherheitsroutine für Einsatzfahrzeuge auszuführen, um ein Fahrzeug zu verlangsamen, an einen Straßenrand zu fahren, ein Fahrzeug zu parken und/oder ein Fahrzeug im Leerlauf laufen zu lassen, bis die Einsatzfahrzeuge vorbeigefahren sind.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 CPU(s) 1218 (z. B. diskrete CPU(s) oder dCPU(s)) beinhalten, die über eine Hochgeschwindigkeitszusammenschaltung (z. B. PCIe) an die SoC(s) 1204 gekoppelt sein können. In mindestens einer Ausführungsform können die CPU(s) 1218 zum Beispiel einen X86-Prozessor beinhalten. Die CPU(s) 1218 können dazu verwendet werden, eine beliebige einer Vielfalt von Funktionen durchzuführen, einschließlich zum Beispiel des Vermittelns potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und SoC(s) 1204 und/oder des Überwachens des Status und Zustands der Steuerung(en) 1236 und/oder eines Infotainmentsystems auf einem Chip („Infotainment-SoC“) 1230.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 GPU(s) 1220 (z. B. diskrete GPU(s) oder dGPU(s)) beinhalten, die über eine Hochgeschwindigkeitszusammenschaltung (z. B. NVLINK-Kanal von NVIDIA) an die SoC(s) 1204 gekoppelt sein können. In mindestens einer Ausführungsform können die GPU(s) 1220 eine zusätzliche Funktionalität für künstliche Intelligenz bereitstellen, wie etwa durch Ausführen redundanter und/oder unterschiedlicher neuronaler Netze, und sie können zum Trainieren und/oder Aktualisieren neuronaler Netze mindestens zum Teil auf Grundlage von Eingaben (z. B. Sensordaten) von Sensoren eines Fahrzeugs 1200 verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner die Netzschnittstelle 1224 beinhalten, die ohne Einschränkung drahtlose Antenne(n) 1226 beinhalten kann (z. B. eine oder mehrere drahtlose Antennen für unterschiedliche Kommunikationsprotokolle, wie etwa eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). In mindestens einer Ausführungsform kann die Netzschnittstelle 1224 verwendet werden, um eine drahtlose Verbindungsfähigkeit mit Internet-Cloud-Diensten (z. B. mit Server(n) und/oder anderen Netzvorrichtungen), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z. B. Client-Vorrichtungen von Fahrgästen) zu ermöglichen. In mindestens einer Ausführungsform kann zum Kommunizieren mit anderen Fahrzeugen eine direkte Verknüpfung zwischen dem Fahrzeug 120 und einem anderen Fahrzeug hergestellt werden und/oder eine indirekte Verknüpfung (z. B. über Netze und über das Internet) hergestellt werden. In mindestens einer Ausführungsform können direkte Verknüpfungen unter Verwendung einer Fahrzeug-zu-Fahrzeug-Kommunikationsverknüpfung hergestellt werden. In mindestens einer Ausführungsform kann eine Fahrzeug-zu-Fahrzeug-Kommunikationsverknüpfung dem Fahrzeug 1200 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1200 bereitstellen (z. B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 1200). In mindestens einer Ausführungsform kann eine derartige vorgenannte Funktionalität Teil einer kooperativen adaptiven Geschwindigkeitssteuerungsfunktionalität des Fahrzeugs 1200 sein.
  • In mindestens einer Ausführungsform kann die Netzschnittstelle 1224 ein SoC beinhalten, das eine Modulations- und Demodulationsfunktionalität bereitstellt und es den Steuerung(en) 1236 ermöglicht, über drahtlose Netze zu kommunizieren. In mindestens einer Ausführungsform kann die Netzschnittstelle 1224 ein Hochfrequenz-Frontend für die Aufwärtskonvertierung vom Basisband auf die Hochfrequenz und die Abwärtskonvertierung von der Hochfrequenz auf das Basisband beinhalten. In mindestens einer Ausführungsform können die Frequenzkonvertierungen auf eine beliebige technisch machbare Weise durchgeführt werden. Beispielsweise können Frequenzumwandlungen durch bekannte Verfahren und/oder unter Verwendung von Superheterodyn-Verfahren durchgeführt werden. In mindestens einer Ausführungsform kann die Hochfrequenz-Front-End-Funktionalität durch einen separaten Chip bereitgestellt werden. In mindestens einer Ausführungsform können die Netzschnittstellen eine drahtlose Funktionalität zum Kommunizieren über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle beinhalten.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner einen oder mehrere Datenspeicher 1228 beinhalten, die ohne Einschränkung chipexternen (z. B. außerhalb der SoC(s) 1204 liegenden) Speicher beinhalten können. In mindestens einer Ausführungsform kann der/können die Datenspeicher 1228 ohne Einschränkung ein oder mehrere Speicherelemente beinhalten, darunter RAM, SRAM, dynamischen Direktzugriffsspeicher (dynamic random-access memory - „DRAM“), Video-Direktzugriffsspeicher (video random-access memory - „VRAM“), Flash-Speicher, Festplatten und/oder andere Komponenten und/oder Vorrichtungen, die mindestens ein Datenbit speichern können.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner GNSS-Sensor(en) 1258 (z. B. GPS- und/oder unterstützte GPS-Sensoren) beinhalten, um bei Funktionen zur Kartierung, Wahrnehmung, Erzeugung des Belegungsgitters und/oder Pfadplanung zu helfen. In mindestens einer Ausführungsform kann eine beliebige Anzahl von GNSS-Sensor(en) 1258 verwendet werden, einschließlich zum Beispiel und ohne Einschränkung eines GPS unter Verwendung eines USB-Steckers mit einer Ethernet-zu-Seriell-Brücke (z. B. RS-232-Brücke).
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner RADAR-Sensor(en) 1260 beinhalten. In mindestens einer Ausführungsform können die RADAR-Sensor(en) 1260 durch das Fahrzeug 1200 zur Fahrzeugdetektion mit großer Reichweite verwendet werden, auch bei Dunkelheit und/oder schlechten Wetterbedingungen. In mindestens einer Ausführungsform können die RADAR-Funktionssicherheitslevel ASIL B sein. In mindestens einer Ausführungsform können die RADAR-Sensor(en) 1260 einen CAN-Bus und/oder den Bus 1202 (z. B. zum Übertragen der durch die RADAR-Sensor(en) 1260 erzeugten Daten) zum Steuern von und Zugriff auf Objektverfolgungsdaten verwenden, wobei in einigen Beispielen Zugriff auf Ethernet-Kanäle zum Zugreifen auf Rohdaten besteht. In mindestens einer Ausführungsform kann eine große Vielfalt von RADAR-Sensortypen verwendet werden. Zum Beispiel und ohne Einschränkung können die RADAR-Sensor(en) 1260 für die Verwendung als Front-, Heck- und Seiten-RADAR geeignet sein. In mindestens einer Ausführungsform handelt es sich bei einem oder mehreren Sensoren der RADAR-Sensor(en) 1260 um einen Impuls-Doppler-RADAR-Sensor.
  • In mindestens einer Ausführungsform können die RADAR-Sensor(en) 1260 unterschiedliche Konfigurationen beinhalten, wie etwa mit großer Reichweite und schmalem Sichtfeld, mit geringer Reichweite und breitem Sichtfeld, mit seitlicher Abdeckung mit kurzer Reichweite usw. In mindestens einer Ausführungsform kann das RADAR mit großer Reichweite für die adaptive Geschwindigkeitssteuerungsfunktionalität verwendet werden. In mindestens einer Ausführungsform können RADAR-Systeme mit großer Reichweite ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Scans realisiert wird, wie etwa innerhalb einer Reichweite von 250 m (Metern). In mindestens einer Ausführungsform können die RADAR-Sensor(en) 1260 dabei helfen, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und durch das ADAS-System 1238 für den Notbremsassistenten und die Vorwärtskollisionswarnung verwendet werden. In mindestens einer Ausführungsform können die Sensor(en) 1260, die in einem RADARSystem mit großer Reichweite enthalten sind, ohne Einschränkung ein monostatisches multimodales RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle beinhalten. In mindestens einer Ausführungsform mit sechs Antennen können vier zentrale Antennen ein fokussiertes Strahlenmuster erzeugen, das dazu ausgestaltet ist, die Umgebung des Fahrzeugs 1200 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr auf den benachbarten Fahrspuren aufzuzeichnen. In mindestens einer Ausführungsform können zwei weitere Antennen das Sichtfeld erweitern, wodurch es möglich ist, Fahrzeuge, die in eine Fahrspur des Fahrzeugs 1200 einfahren oder diese verlassen, schnell zu detektieren.
  • In mindestens einer Ausführungsform können RADAR-Systeme mit mittlerer Reichweite beispielsweise eine Reichweite von bis zu 160 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 150 Grad (hinten) beinhalten. In mindestens einer Ausführungsform können RADAR-Systeme mit kurzer Reichweite ohne Einschränkung eine beliebige Anzahl von RADAR-Sensor(en) 1260 beinhalten, die für die Installation an beiden Enden eines hinteren Stoßfängers ausgestaltet sind. Wenn das RADAR-Sensorsystem an beiden Enden eines hinteren Stoßfängers installiert ist, kann es in mindestens einer Ausführungsform zwei Strahlen erzeugen, die tote Winkel in einer rückwärtigen Richtung und neben einem Fahrzeug konstant überwachen. In mindestens einer Ausführungsform können RADAR-Systeme mit kurzer Reichweite in dem ADAS-System 1238 zur Detektion des toten Winkels und/oder zur Spurwechselassistenz verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner Ultraschallsensor(en) 1262 beinhalten. In mindestens einer Ausführungsform können die Ultraschallsensor(en) 1262, die an einer vorderen, einer hinteren und/oder seitlichen Stelle des Fahrzeugs 1200 positioniert sein können, für die Einparkhilfe und/oder zum Erstellen und Aktualisieren eines Belegungsgitters verwendet werden. In mindestens einer Ausführungsform kann eine große Vielfalt von Ultraschallsensor(en) 1262 verwendet werden und können unterschiedliche Ultraschallsensor(en) 1262 für unterschiedliche Detektionsreichweiten (z. B. 2,5 m, 4 m) verwendet werden. In mindestens einer Ausführungsform können die Ultraschallsensor(en) 1262 bei funktionellen Sicherheitslevels von ASIL B betrieben werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 LIDAR-Sensor(en) 1264 beinhalten. In mindestens einer Ausführungsform können die LIDAR-Sensor(en) 1264 zur Objekt- und Fußgängerdetektion, Notbremsung, Kollisionsvermeidung und/oder für andere Funktionen verwendet werden. In mindestens einer Ausführungsform können die LIDAR-Sensor(en) 1264 bei dem funktionellen Sicherheitslevel ASIL B betrieben werden. In mindestens einer Ausführungsform kann das Fahrzeug 1200 mehrere LIDAR-Sensoren 1264 (z. B. zwei, vier, sechs usw.) beinhalten, die einen Ethernet-Kanal verwenden können (um z. B. einem Gigabit-Ethernet-Switch Daten bereitzustellen).
  • In mindestens einer Ausführungsform können die LIDAR-Sensor(en) 1264 dazu in der Lage sein, eine Liste von Objekten und deren Abstände für ein 360-Grad-Sichtfeld bereitzustellen. In mindestens einer Ausführungsform können handelsübliche LIDAR-Sensor(en) 1264 zum Beispiel eine beworbene Reichweite von ungefähr 100 m aufweisen, mit einer Genauigkeit von 2 cm bis 3 cm und mit Unterstützung für eine 100 Mbps-Ethernet-Verbindung. In mindestens einer Ausführungsform können ein oder mehrere nicht hervorstehende LIDAR-Sensoren verwendet werden. In einer derartigen Ausführungsform können die LIDAR-Sensor(en) 1264 eine kleine Vorrichtung beinhalten, die in eine vordere, eine hintere, eine seitliche Stelle und/oder eine Eckstelle des Fahrzeugs 1200 eingebettet sein kann. In mindestens einer Ausführungsform können die LIDAR-Sensor(en) 1264 in einer derartigen Ausführungsform ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von bis zu 35 Grad mit einer Reichweite von 200 m selbst bei Objekten mit niedrigem Reflexionsvermögen bereitstellen. In mindestens einer Ausführungsform können die an der Front montierte(n) LIDAR-Sensor(en) 1264 für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert sein.
  • In mindestens einer Ausführungsform können auch LIDAR-Technologien, wie etwa 3D-Flash-LIDAR, verwendet werden. In mindestens einer Ausführungsform verwendet 3D-Flash-LIDAR einen Laserblitz als Übertragungsquelle, um die Umgebung des Fahrzeugs 1200 bis zu ungefähr 200 m zu erleuchten. In mindestens einer Ausführungsform umfasst eine Flash-LIDAR-Einheit ohne Einschränkung einen Rezeptor, der die Laserimpuls-Laufzeit und das reflektierte Licht an jedem Pixel aufzeichnet, was wiederum einer Reichweite von dem Fahrzeug 1200 zu Objekten entspricht. In mindestens einer Ausführungsform kann Blitz-LIDAR ermöglichen, dass mit jedem Laserblitz hochgenaue und verzerrungsfreie Bilder der Umgebung erzeugt werden. In mindestens einer Ausführungsform können vier Flash-LIDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 1200. In mindestens einer Ausführungsform beinhalten 3D-Flash-LIDAR-Systeme ohne Einschränkung eine Festkörper-3D-Staring-Array-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z. B. eine nicht scannende LIDAR-Vorrichtung). In mindestens einer Ausführungsform kann die Flash-LIDAR-Vorrichtung einen 5-Nanosekunden-Laserimpuls der Klasse I (augensicher) pro Bild verwenden und das reflektierte Laserlicht als 3D-Reichweitenpunktwolke und gemeinsam registrierte Intensitätsdaten erfassen.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner IMU-Sensor(en) 1266 beinhalten. In mindestens einer Ausführungsform können die IMU-Sensor(en) 1266 in einer Mitte einer Hinterachse des Fahrzeugs 1200 angeordnet sein. In mindestens einer Ausführungsform können die IMU-Sensor(en) 1266 zum Beispiel und ohne Einschränkung (einen) Beschleunigungsmesser, (ein) Magnetometer, Gyroskop(e), einen Magnetkompass, Magnetkompasse und/oder andere Sensortypen beinhalten. In mindestens einer Ausführungsform, wie etwa bei sechsachsigen Anwendungen, können die IMU-Sensor(en) 1266 ohne Einschränkung Beschleunigungsmesser und Gyroskope beinhalten. In mindestens einer Ausführungsform, wie etwa bei neunachsigen Anwendungen, können die IMU-Sensor(en) 1266 ohne Einschränkung Beschleunigungsmesser, Gyroskope und Magnetometer beinhalten.
  • In mindestens einer Ausführungsform können die IMU-Sensor(en) 1266 als miniaturisiertes GPS-gestütztes Trägheitsnavigationssystem (GPS-Aided Inertial Navigation System - „GPS/INS“) mit hoher Rechenleistung implementiert sein, das Trägheitssensoren von mikroelektromechanischen Systemen (micro-electromechanical systems - „MEMS“), einen hochempfindlichen GPS-Empfänger und weiterentwickelte Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Lage bereitzustellen. In mindestens einer Ausführungsform können die IMU-Sensor(en) 1266 es dem Fahrzeug 1200 ermöglichen, seinen Kurs zu schätzen, ohne dass Eingaben von einem Magnetsensor erforderlich sind, indem Änderungen der Geschwindigkeit direkt von einem GPS beobachtet und an die IMU-Sensor(en) 1266 korreliert werden. In mindestens einer Ausführungsform können die IMU-Sensor(en) 1266 und GNSS-Sensor(en) 1258 in einer einzelnen integrierten Einheit kombiniert sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 Mikrofon(e) 1296 beinhalten, die in dem und/oder um das Fahrzeug 1200 herum platziert sind. In mindestens einer Ausführungsform können die Mikrofon(e) 1296 unter anderem zur Detektion und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner eine beliebige Anzahl von Kameratypen beinhalten, darunter Stereokamera(s) 1268, Weitsichtkamera(s) 1270, Infrarotkamera(s) 1272, Rundumkamera(s) 1274, Langstreckenkamera(s) 1298, Mittelstreckenkamera(s) 1276 und/oder andere Kameratypen. In mindestens einer Ausführungsform können Kameras verwendet werden, um Bilddaten um die gesamte Peripherie des Fahrzeugs 1200 herum zu erfassen. Welche Typen von Kameras verwendet werden, hängt in mindestens einer Ausführungsform von dem Fahrzeug 1200 ab. In mindestens einer Ausführungsform kann eine beliebige Kombination von Kameratypen verwendet werden, um die notwendige Abdeckung um das Fahrzeug 1200 herum bereitzustellen. In mindestens einer Ausführungsform kann eine Anzahl von eingesetzten Kameras in Abhängigkeit von der Ausführungsform unterschiedlich sein. In mindestens einer Ausführungsform könnte das Fahrzeug 1200 zum Beispiel sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras oder eine andere Anzahl von Kameras beinhalten. In mindestens einer Ausführungsform können Kameras beispielsweise und ohne Einschränkung Gigabit-Multimedia-Serial-Link- („GMSL“-) und/oder Gigabit-Ethernet-Kommunikation unterstützen. In mindestens einer Ausführungsform könnte jede Kamera so sein wie bereits hierin in Bezug auf 12A und 12B detaillierter beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner Schwingungssensor(en) 1242 beinhalten. In mindestens einer Ausführungsform können die Schwingungssensor(en) 1242 Schwingungen von Komponenten des Fahrzeugs 1200, wie etwa Achse(n), messen. Zum Beispiel können in mindestens einer Ausführungsform Änderungen der Vibrationen eine Änderung des Straßenbelags angeben. Wenn zwei oder mehr Schwingungssensoren 1242 verwendet werden, können in mindestens einer Ausführungsform die Unterschiede zwischen den Schwingungen verwendet werden, um die Reibung oder den Schlupf des Straßenbelags zu bestimmen (z. B., wenn ein Unterschied der Schwingung zwischen einer leistungsbetriebenen Achse und einer sich frei drehenden Achse besteht).
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 das ADAS-System 1238 beinhalten. In mindestens einer Ausführungsform kann das ADAS-System 1238 in einigen Beispielen ohne Einschränkung ein SoC beinhalten. In mindestens einer Ausführungsform kann das ADAS-System 1238 ohne Einschränkung eine beliebige Anzahl und Kombination eines Systems zur autonomen/adaptiven/automatischen Geschwindigkeitssteuerung (autonomous/adaptive/automatic cruise control - „ACC“), eines Systems zur kooperativen adaptiven Geschwindigkeitssteuerung (cooperative adaptive cruise control - „CACC“), eines Systems zur Vorwärtszusammenstoßwarnung (forward crash warning - „FCW“), eines automatischen Systems zur Notbremsung („AEB“), eines Systems zur Spurverlassenswarnung („LDW“), eines Systems zur Spurhalteassistenz (lane keep assist - „LKA“), eines Systems zur Totwinkelwarnung (blind spot warning - „BSW“), eines Systems zur Querverkehrswarnung (rear crosstraffic warning - „RCTW“), eines Systems zur Kollisionswarnung (collision warning - „CW“), eines Systems zur Spurzentrierung (lane centering - „LC“) und/oder anderer Systeme, Merkmale und/oder Funktionen beinhalten.
  • In mindestens einer Ausführungsform kann das ACC-System RADAR-Sensor(en) 1260, LIDAR-Sensor(en) 1264 und/oder eine beliebige Anzahl von Kamera(s) verwenden. In mindestens einer Ausführungsform kann das ACC-System ein Längs-ACC-System und/oder ein Quer-ACC-System beinhalten. In mindestens einer Ausführungsform überwacht und steuert ein Längs-ACC-System den Abstand zu einem anderen Fahrzeug, das sich unmittelbar vor dem Fahrzeug 1200 befindet, und es stellt die Geschwindigkeit des Fahrzeugs 1200 automatisch ein, um einen sicheren Abstand zu vorausfahrenden Fahrzeugen einzuhalten. In mindestens einer Ausführungsform führt ein Quer-ACC-System eine Abstandshaltung durch und es rät dem Fahrzeug 1200, die Fahrspur zu wechseln, wenn dies notwendig ist. In mindestens einer Ausführungsform steht eine Quer-ACC mit anderen ADAS-Anwendungen, wie etwa LC und CW, in Bezug.
  • In mindestens einer Ausführungsform verwendet ein CACC-System Informationen von anderen Fahrzeugen, die über die Netzschnittstelle 1224 und/oder die drahtlose(n) Antenne(n) 1226 von anderen Fahrzeugen über eine drahtlose Verknüpfung oder indirekt über eine Netzverbindung (z. B. über das Internet) empfangen werden können. In mindestens einer Ausführungsform können direkte Verknüpfungen durch eine Fahrzeug-zu-Fahrzeug vehicle-to-vehicle, „V2V“)-Kommunikationsverknüpfung bereitgestellt werden, während indirekte Verknüpfungen durch eine Infrastruktur-zu-Fahrzeug (infrastructure-to-vehicle, „I2V“)-Kommunikationsverknüpfung bereitgestellt werden können. Im Allgemeinen stellt V2V-Kommunikation Informationen über unmittelbar vorausfahrende Fahrzeuge (z. B. Fahrzeuge, die sich unmittelbar vor dem und auf derselben Spur wie das Fahrzeug 1200 befinden) bereit, während I2V-Kommunikation Informationen über weiter entfernt vorausfahrenden Verkehr bereitstellt. In mindestens einer Ausführungsform kann ein CACC-System entweder eines oder beides von I2V- und V2V-Informationsquellen beinhalten. In mindestens einer Ausführungsform kann ein CACC-System angesichts der Informationen über Fahrzeuge vor dem Fahrzeug 1200 zuverlässiger sein und es hat das Potenzial, die Gleichmäßigkeit des Verkehrsflusses zu verbessern und Staus auf der Straße zu reduzieren.
  • In mindestens einer Ausführungsform ist ein FCW-System so ausgestaltet, dass es einen Fahrer vor einer Gefahr warnt, sodass ein derartiger Fahrer eine korrigierende Maßnahme ergreifen kann. In mindestens einer Ausführungsform verwendet ein FCW-System eine nach vorn gerichtete Kamera und/oder RADAR-Sensor(en) 1260, die an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, das heißt elektrisch gekoppelt, um eine Rückmeldung des Fahrers bereitzustellen, wie etwa eine Anzeige, einen Lautsprecher und/oder eine vibrierende Komponente. In mindestens einer Ausführungsform kann ein FCW-System eine Warnung bereitstellen, wie etwa in Form eines Tons, einer visuellen Warnung, einer Schwingung und/oder eines schnellen Bremsimpulses.
  • In mindestens einer Ausführungsform detektiert ein AEB-System eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt und es kann automatisch die Bremsen betätigen, falls ein Fahrer nicht innerhalb eines vorgegebenen Zeit- oder Abstandsparameters eine korrigierende Maßnahme ergreift. In mindestens einer Ausführungsform kann das AEB-System nach vorn gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1260 verwenden, die an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn ein AEB-System eine Gefahr detektiert, warnt es in mindestens einer Ausführungsform typischerweise zuerst einen Fahrer, um eine korrigierende Maßnahme zu ergreifen, um eine Kollision zu vermeiden, und falls dieser Fahrer keine korrigierende Maßnahme ergreift, kann dieses AEB-System automatisch die Bremsen in dem Bestreben betätigen, einen Aufprall einer vorhergesagten Kollision zu verhindern oder mindestens abzuschwächen. In mindestens einer Ausführungsform kann das AEB-System Techniken wie etwa dynamische Bremsunterstützung und/oder Bremsung aufgrund eines bevorstehenden Zusammenstoßes beinhalten.
  • In mindestens einer Ausführungsform stellt ein LDW-System visuelle, akustische und/oder taktile Warnungen bereit, wie etwa Lenkrad- oder Sitzschwingungen, um den Fahrer zu warnen, wenn das Fahrzeug 1200 die Fahrspurmarkierungen überquert. In mindestens einer Ausführungsform wird ein LDW-System nicht aktiviert, wenn ein Fahrer ein absichtliches Verlassen der Fahrspur angibt, wie etwa durch Betätigen des Blinkers. In mindestens einer Ausführungsform kann ein LDW-System nach vorn und zur Seite gerichtete Kameras verwenden, die an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, das heißt elektrisch gekoppelt, um eine Rückmeldung des Fahrers bereitzustellen, wie etwa eine Anzeige, einen Lautsprecher und/oder eine vibrierende Komponente. In mindestens einer Ausführungsform ist ein LKA-System eine Variation eines LDW-Systems. In mindestens einer Ausführungsform stellt ein LKA-System eine Lenkeingabe oder eine Bremsung bereit, um das Fahrzeug 1200 zu korrigieren, falls das Fahrzeug 1200 beginnt, seine Fahrspur zu verlassen.
  • In mindestens einer Ausführungsform detektiert und warnt ein BSW-System einen Fahrer vor Fahrzeugen in einem toten Winkel eines Automobils. In mindestens einer Ausführungsform kann das BSW-System einen visuellen, akustischen und/oder taktilen Alarm bereitstellen, um anzugeben, dass das Einfädeln in oder Wechseln von Fahrspuren unsicher ist. In mindestens einer Ausführungsform kann ein BSW-System eine zusätzliche Warnung bereitstellen, wenn ein Fahrer einen Blinker verwendet. In mindestens einer Ausführungsform kann ein BSW-System nach hinten gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1260 verwenden, die an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, das heißt elektrisch an eine Rückmeldung des Fahrers gekoppelt, wie etwa eine Anzeige, einen Lautsprecher und/oder eine vibrierende Komponente.
  • In mindestens einer Ausführungsform kann ein RCTW-System eine visuelle, akustische und/oder taktile Benachrichtigung bereitstellen, wenn ein Objekt außerhalb der Reichweite einer Heckkamera detektiert wird, wenn das Fahrzeug 1200 rückwärtsfährt. In mindestens einer Ausführungsform beinhaltet ein RCTW-System ein AEB-System, um sicherzustellen, dass Fahrzeugbremsen betätigt werden, um einen Zusammenstoß zu vermeiden. In mindestens einer Ausführungsform kann ein RCTW-System einen oder mehrere nach hinten gerichtete RADAR-Sensor(en) 1260 verwenden, die an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, das heißt elektrisch gekoppelt, um eine Rückmeldung des Fahrers bereitzustellen, wie etwa eine Anzeige, einen Lautsprecher und/oder eine vibrierende Komponente.
  • In mindestens einer Ausführungsform können herkömmliche ADAS-Systeme anfällig für falsch positive Ergebnisse sein, die für den Fahrer ärgerlich und ablenkend sein können, aber typischerweise nicht katastrophal sind, da herkömmliche ADAS-Systeme einen Fahrer warnen und es diesem Fahrer ermöglichen, zu entscheiden, ob wirklich eine Sicherheitsbedingung vorliegt, und entsprechend zu handeln. In mindestens einer Ausführungsform entscheidet das Fahrzeug 1200 im Falle von widersprüchlichen Ergebnissen selbst, ob das Ergebnis eines primären Computers oder eines sekundären Computers (z. B. einer ersten Steuerung oder einer zweiten Steuerung der Steuerungen 1236) zu beachten ist. In mindestens einer Ausführungsform kann das ADAS-System 1238 zum Beispiel ein Reserve- und/oder sekundärer Computer sein, der einem Rationalitätsmodul eines Reserve-Computers Wahrnehmungsinformationen bereitstellt. In mindestens einer Ausführungsform kann ein Rationalitätsmonitor eines Reserve-Computers redundante diverse Software auf Hardware-Komponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahr-Tasks zu detektieren. In mindestens einer Ausführungsform können die Ausgaben aus dem ADAS-Systems 1238 einer Überwachungs-MCU bereitgestellt werden. Falls Ausgaben aus einem primären Computer und Ausgaben aus einem sekundären Computer einander widersprechen, bestimmt eine Überwachungs-MCU in mindestens einer Ausführungsform, wie der Widerspruch beizulegen ist, um einen sicheren Betrieb sicherzustellen.
  • In mindestens einer Ausführungsform kann ein Primärcomputer so ausgestaltet sein, dass er der übergeordneten MCU einen Vertrauenswert liefert, der das Vertrauen des Primärcomputers in das gewählte Ergebnis angibt. In mindestens einer Ausführungsform kann die überwachende MCU der Anweisung des Primärcomputers folgen, wenn der Vertrauenswert einen Schwellenwert überschreitet, unabhängig davon, ob der Sekundärcomputer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Bei mindestens einer Ausführungsform, bei der der Vertrauenswert den Schwellenwert nicht erreicht und der primäre und der sekundäre Computer unterschiedliche Ergebnisse (z. B. einen Konflikt) anzeigen, kann die überwachende MCU zwischen den Computern vermitteln, um das geeignete Ergebnis zu bestimmen.
  • In mindestens einer Ausführungsform kann die überwachende MCU so ausgestaltet sein, dass sie ein neuronales Netz bzw. neuronale Netze ausführt, das bzw. die trainiert und so ausgestaltet ist bzw. sind, dass es bzw. sie zumindest teilweise basierend auf von Ausgaben eines Primärcomputers und Ausgaben eines Sekundärcomputers die Bedingungen bestimmt bzw. bestimmen, unter denen der Sekundärcomputer Fehlalarme auslöst. In mindestens einer Ausführungsform kann (können) das (die) neuronale(n) Netz(e) in der überwachenden MCU lernen, wann der Ausgabe des Sekundärcomputers vertraut werden kann und wann nicht. Zum Beispiel können in mindestens einer Ausführungsform, wenn dieser sekundäre Computer ein RADAR-basiertes FCW-System ist, (ein) neuronale(s) Netzwerk(e) in jener überwachenden MCU lernen, wann ein FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren sind, wie etwa ein Abflussgitter oder ein Gullydeckel, das/der einen Alarm auslöst. Bei mindestens einer Ausführungsform, wenn der Sekundärcomputer ein kamerabasiertes LDW-System ist, kann ein neuronales Netz in der überwachenden MCU lernen, das LDW-System außer Kraft zu setzen, wenn Radfahrer oder Fußgänger vorhanden sind und ein Verlassen der Fahrspur tatsächlich das sicherste Manöver ist. In mindestens einer Ausführungsform kann eine Überwachungs-MCU mindestens eines von einem DLA oder einer GPU beinhalten, der/die zum Ausführen von neuronalen Netz(en) mit assoziiertem Speicher geeignet ist. In mindestens einer Ausführungsform kann eine Überwachungs-MCU eine Komponente eines oder mehrerer SoC(s) 1204 umfassen und/oder als solche enthalten sein.
  • In mindestens einer Ausführungsform kann das ADAS-System 1238 einen sekundären Computer beinhalten, der die ADAS-Funktionalität unter Verwendung der traditionellen Regeln des maschinellen Sehens durchführt. In mindestens einer Ausführungsform kann dieser sekundäre Computer klassische Regeln des maschinellen Sehens (wenn-dann) verwenden und das Vorhandensein eines neuronalen Netz(en) in einer Überwachungs-MCU die Zuverlässigkeit, Sicherheit und Rechenleistung verbessern. In mindestens einer Ausführungsform wird das Gesamtsystem durch die unterschiedliche Implementierung und die absichtliche Nichtidentität fehlertoleranter, insbesondere gegenüber Fehlern, die durch Softwarefunktionen (oder Software-Hardware-Schnittstellen) verursacht werden. Falls zum Beispiel in mindestens einer Ausführungsform ein Software-Bug oder -Fehler in der auf einem primären Computer laufenden Software vorliegt und ein nicht identischer Software-Code, der auf einem sekundären Computer läuft, ein konsistentes Gesamtergebnis bereitstellt, dann kann eine Überwachungs-MCU eine größere Konfidenz dafür aufweisen, dass ein Gesamtergebnis korrekt ist und ein Bug in der Software oder Hardware auf diesem primären Computer keinen wesentlichen Fehler verursacht.
  • In mindestens einer Ausführungsform kann eine Ausgabe des ADAS-Systems 1238 in einen Wahrnehmungsblock eines primären Computers und/oder in einen Block für dynamische Fahr-Tasks eines primären Computers eingespeist werden. Falls das ADAS-System 1238 zum Beispiel eine Vorwärtszusammenstoßwarnung aufgrund eines unmittelbar vorausliegenden Objekts angibt, kann ein Wahrnehmungsblock in mindestens einer Ausführungsform diese Information beim Identifizieren von Objekten verwenden. In mindestens einer Ausführungsform kann ein sekundärer Computer ein eigenes neuronales Netz aufweisen, das trainiert wird und somit ein Risiko von falsch positiven Ergebnissen reduziert, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner ein Infotainment-SoC 1230 (z. B. ein fahrzeuginternes Infotainment-System (in-vehicle infotainment system - IVI-System)) beinhalten. Obwohl als es als ein SoC veranschaulicht und beschrieben ist, kann das Infotainment-SoC 1230 in mindestens einer Ausführungsform kein SoC sein und ohne Einschränkung zwei oder mehr diskrete Komponenten beinhalten. In mindestens einer Ausführungsform kann das Infotainment-SoC 1230 ohne Einschränkung eine Kombination aus Hardware und Software beinhalten, die verwendet werden kann, um dem Fahrzeug 1200 Audio (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. TV, Filme, Streaming usw.), Telefon (z. B. Freisprechen), Netzverbindungsfähigkeit (z. B. LTE, WiFi usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Rückwärtseinparkhilfe, ein Radiodatensystem, fahrzeugbezogene Informationen wie etwa Kraftstofffüllstand, insgesamt zurückgelegte Strecke, Bremskraftstofffüllstand, Ölfüllstand, Tür öffnen/schließen, Luftfilterinformationen usw.) bereitzustellen. Das Infotainment-SoC 1230 könnte zum Beispiel Radios, Plattenspieler, Navigationssysteme, Videowiedergabevorrichtungen, USB- und Bluetooth-Verbindungsfähigkeit, Carputer, In-Car-Entertainment, WiFi, Audiosteuerelemente am Lenkrad, ein Freisprech-Sprachsteuerelement, eine Heads-up-Anzeige (heads-up display - „HUD“), eine HMI-Anzeige 1234, eine Telematikvorrichtung, ein Steuerfeld (z. B. zum Steuern von und/oder Interagieren mit verschiedenen Komponenten, Merkmalen und/oder Systemen) und/oder andere Komponenten beinhalten. In mindestens einer Ausführungsform kann das Infotainment-SoC 1230 ferner verwendet werden, um Benutzer(n) des Fahrzeugs 1200 Informationen (z. B. visuell und/oder akustisch) bereitzustellen, wie etwa Informationen von dem ADAS-System 1238, Informationen zum autonomen Fahren, wie etwa geplante Fahrzeugmanöver, Trajektorien, Umgebungsinformationen (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.
  • In mindestens einer Ausführungsform kann das Infotainment-SoC 1230 eine beliebige Menge und einen beliebigen Typ von GPU-Funktionalität beinhalten. In mindestens einer Ausführungsform kann das Infotainment-SoC 1230 über den Bus 1202 mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 1200 kommunizieren. In mindestens einer Ausführungsform kann das Infotainment-SoC 1230 an eine Überwachungs-MCU gekoppelt sein, sodass eine GPU eines Infotainment-Systems einige Selbstfahrfunktionen ausführen kann, falls die primäre(n) Steuerung(en) 1236 (z. B. primäre und/oder Reserve-Computer des Fahrzeugs 1200) ausfallen. In mindestens einer Ausführungsform kann das Infotainment-SoC 1230 das Fahrzeug 1200 in einen Modus des Fahrens zu einem sicheren Halt versetzen, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1200 ferner ein Kombiinstrument 1232 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.) beinhalten. In mindestens einer Ausführungsform kann das Kombiinstrument 1232 ohne Einschränkung eine Steuerung und/oder einen Supercomputer (z. B. eine diskrete Steuerung oder einen diskreten Supercomputer) beinhalten. In mindestens einer Ausführungsform kann das Kombiinstrument 1232 ohne Einschränkung eine beliebige Anzahl und Kombination eines Satzes von Messausrüstung beinhalten, wie etwa Geschwindigkeitsmesser, Kraftstoffstand, Öldruck, Drehzahlmesser, Wegstreckenzähler, Blinker, Schaltknüppelpositionsangabe, Sicherheitsgurt-Warnleuchte(n), Feststellbremsen-Warnleuchte(n), Motorfehlfunktionsleuchte(n), Informationen über ergänzende Rückhaltesysteme (z. B. Airbags), Beleuchtungssteuerelemente, Sicherheitssystemsteuerelemente, Navigationsinformationen usw. In einigen Beispielen können Informationen angezeigt und/oder von dem Infotainment-SoC 1230 und dem Kombiinstrument 1232 gemeinsam genutzt werden. In mindestens einer Ausführungsform kann das Kombiinstrument 1232 als Teil des Infotainment-SoC 1230 enthalten sein oder umgekehrt.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 12C für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 12D ist ein Diagramm eines Systems 1276 zur Kommunikation zwischen cloudbasierten Server(n) und dem autonomen Fahrzeug 1200 aus 12A gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 1276 ohne Einschränkung den/die Server 1278, die Netz(e) 1290 und eine beliebige Anzahl und einen beliebigen Typ von Fahrzeugen, einschließlich des Fahrzeugs 1200, beinhalten. In mindestens einer Ausführungsform kann der /können die Server 1278 ohne Einschränkung eine Vielzahl von GPUs 1284(A)-1284(H) (hierin zusammen als GPUs 1284 bezeichnet), PCIe-Switches 1282(A)-1282(D) (hierin zusammen als PCle-Switches 1282 bezeichnet) und/oder CPUs 1280(A)-1280(B) (hierin zusammen als CPUs 1280 bezeichnet) beinhalten. In mindestens einer Ausführungsform können die GPUs 1284, CPUs 1280 und PCIe-Switches 1282 mit Hochgeschwindigkeitszusammenschaltungen zusammengeschaltet sein, wie zum Beispiel und ohne Einschränkung den NVLink-Schnittstellen 1288, die von NVIDIA entwickelt wurden, und/oder PCle-Verbindungen 1286. In mindestens einer Ausführungsform sind die GPUs 1284 über ein NVLink- und/oder NVSwitch-SoC verbunden und die GPUs 1284 und die PCle-Switches 1282 über PCIe-Zusammenschaltungen verbunden. Obwohl acht GPUs 1284, zwei CPUs 1280 und vier PCle-Switches 1282 veranschaulicht sind, soll dies nicht einschränkend sein. In mindestens einer Ausführungsform kann jeder des/der Server(s) 1278 ohne Einschränkung eine beliebige Anzahl von GPUs 1284, CPUs 1280 und/oder PCIe-Switches 1282 in beliebiger Kombination beinhalten. Zum Beispiel könnte(n) in mindestens einer Ausführungsform der/die Server 1278 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 1284 beinhalten.
  • In mindestens einer Ausführungsform kann der/können die Server 1278 über die Netz(e) 1290 und von Fahrzeugen Bilddaten empfangen, die für Bilder repräsentativ sind, die unerwartete oder veränderte Straßenbedingungen zeigen, wie etwa kürzlich begonnene Straßenarbeiten. In mindestens einer Ausführungsform kann der/können die Server 1278 über die Netz(e) 1290 und an die Fahrzeuge neuronale Netze 1292, aktualisiert oder anderweitig, und/oder Karteninformationen 1294 übertragen, einschließlich ohne Einschränkung Informationen bezüglich Verkehrs- und Straßenbedingungen. In mindestens einer Ausführungsform können Aktualisierungen der Karteninformationen 1294 ohne Einschränkung Aktualisierungen für die HD-Karte 1222 beinhalten, wie etwa Informationen bezüglich Baustellen, Schlaglöchern, Umleitungen, Überschwemmungen und/oder anderer Hindernisse. In mindestens einer Ausführungsform können die neuronalen Netze 1292 und/oder Karteninformationen 1294 aus einem neuen Training und/oder Erfahrungen resultiert haben, die in Daten dargestellt werden, die von einer beliebigen Anzahl von Fahrzeugen in einer Umgebung empfangen wurden, und/oder mindestens zum Teil auf Training basieren, das in einem Rechenzentrum (z. B. unter Verwendung von den Server(n) 1278 und/oder anderen Servern) durchgeführt wurde.
  • In mindestens einer Ausführungsform kann der/können die Server 1278 verwendet werden, um Modelle des maschinellen Lernens (z. B. neuronale Netze) mindestens zum Teil auf Grundlage von Trainingsdaten zu trainieren. In mindestens einer Ausführungsform können die Trainingsdaten von Fahrzeugen erzeugt werden und/oder können sie in einer Simulation (z. B. unter Verwendung einer Spiele-Engine) erzeugt werden. In mindestens einer Ausführungsform wird eine beliebige Menge von Trainingsdaten mit Tags versehen (z. B., wenn das assoziierte neuronale Netzwerk von überwachtem Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen. In mindestens einer Ausführungsform wird eine beliebige Menge von Trainingsdaten nicht markiert und/oder vorverarbeitet (z. B., wenn das assoziierte neuronale Netz kein überwachtes Lernen erfordert). In mindestens einer Ausführungsform können, sobald die Modelle des maschinellen Lernens trainiert sind, die Modelle des maschinellen Lernens durch Fahrzeuge verwendet werden (z. B. über die Netz(e) 1290 an Fahrzeuge übertragen werden) und/oder die Modelle des maschinellen Lernens können durch den/die Server 1278 verwendet werden, um Fahrzeuge aus der Ferne zu überwachen.
  • In mindestens einer Ausführungsform kann der/können die Server 1278 Daten von Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netze zum intelligenten Echtzeit-Inferenzieren anwenden. In mindestens einer Ausführungsform kann der/können die Server 1278 Deep-Learning-Supercomputer und/oder dedizierte Kl-Computer beinhalten, die durch die GPU(s) 1284 angetrieben werden, wie etwa die von NVIDIA entwickelten DGX- und DGX-Station-Maschinen. In mindestens einer Ausführungsform kann der/können die Server 1278 jedoch eine Deep-Learning-Infrastruktur beinhalten, die CPU-angetriebene Rechenzentren verwendet.
  • In mindestens einer Ausführungsform kann die Deep-Learning-Infrastruktur des/der Server(s) 1278 zum schnellen Echtzeit-Inferenzieren in der Lage sein und diese Fähigkeit verwenden, um den Zustand von Prozessoren, Software und/oder assoziierter Hardware in dem Fahrzeug 1200 zu bewerten und zu verifizieren. Zum Beispiel kann in mindestens einer Ausführungsform die Deep-Learning-Infrastruktur periodische Aktualisierungen von dem Fahrzeug 1200 empfangen, wie etwa eine Sequenz von Bildern und/oder Objekten, die das Fahrzeug 1200 in dieser Sequenz von Bildern lokalisiert hat (z. B. über maschinelles Sehen und/oder andere Techniken des maschinellen Lernens zur Objektklassifizierung). In mindestens einer Ausführungsform kann die Deep-Learning-Infrastruktur ihr eigenes neuronales Netzwerk ausführen, um Objekte zu identifizieren und sie mit Objekten zu vergleichen, die durch das Fahrzeug 1200 identifiziert wurden, und falls die Ergebnisse nicht übereinstimmen und die Deep-Learning-Infrastruktur zu dem Schluss kommt, dass die Kl in dem Fahrzeug 1200 eine Fehlfunktion aufweist, dann kann der/können die Server 1278 ein Signal an das Fahrzeug 1200 übertragen, das einen ausfallsicheren Computer des Fahrzeugs 1200 anweist, die Steuerung zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • In mindestens einer Ausführungsform kann der/können die Server 1278 GPU(s) 1284 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. TensorRT-3-Vorrichtungen von NVIDIA) beinhalten. In mindestens einer Ausführungsform kann eine Kombination von GPU-angetriebenen Servern und Inferenzbeschleunigung eine Reaktionsfähigkeit in Echtzeit ermöglichen. In mindestens einer Ausführungsform, wenn z. B. die Performance weniger kritisch ist, können von CPUs, FPGAs und anderen Prozessoren angetriebene Server für die Ableitung verwendet werden. In mindestens einer Ausführungsform werden die Hardware-Strukturen) 915 verwendet, um eine oder mehrere Ausführungsformen durchzuführen. Details bezüglich der Hardware-Struktur(en) 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt.
  • COMPUTERSYSTEME
  • 13 ist ein Blockdiagramm, das ein beispielhaftes Computersystem veranschaulicht, das ein System mit zusammengeschalteten Vorrichtungen und Komponenten, ein System auf einem Chip (SOC) oder eine Kombination davon sein kann, gebildet mit einem Prozessor, der Ausführungseinheiten zum Ausführen einer Anweisung beinhalten kann, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann ein Computersystem 1300 ohne Einschränkung eine Komponente, wie etwa einen Prozessor 1302, beinhalten, um Ausführungseinheiten einschließlich Logik zum Durchführen von Algorithmen für Prozessdaten gemäß der vorliegenden Offenbarung zu verwenden, wie etwa in der hierin beschriebenen Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 1300 Prozessoren beinhalten, wie etwa die PENTIUM®-Prozessorfamilie, die Mikroprozessoren Xeon™, Itanium®, XScale™ und/oder StrongARM™, Intel® Core™ oder Intel® Nervana™, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs, die andere Mikroprozessoren, Engineering-Arbeitsstationen, Set-Top-Boxen und dergleichen aufweisen) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 1300 eine Version des Betriebssystems WINDOWS ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (zum Beispiel UNIX und Linux), eingebettete Software und/oder grafische Benutzerschnittstellen verwendet werden können.
  • Ausführungsformen können in anderen Vorrichtungen wie etwa tragbaren Vorrichtungen und eingebetteten Anwendungen verwendet werden. Einige Beispiele für tragbare Einrichtungen weisen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten („PDAs“) und Handheld-PCs auf. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), ein System auf einem Chip, Netzwerkcomputer („NetPCs“), Set-Top-Boxen, Netzwerk-Hubs, Weitverkehrsnetzwerk(wide area network - „WAN“)-Switches oder ein beliebiges anderes System beinhalten, das eine oder mehrere Anweisungen gemäß mindestens einer Ausführungsform durchführen kann.
  • In mindestens einer Ausführungsform kann das Computersystem 1300 ohne Einschränkung den Prozessor 1302 beinhalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 1308 beinhalten kann, um Trainieren und/oder Inferenzieren eines Modells des maschinellen Lernens gemäß den hierin beschriebenen Techniken durchzuführen. In mindestens einer Ausführungsform ist das Computersystem 1300 ein Einzelprozessor-Desktop- oder -Serversystem, aber in einer anderen Ausführungsform kann das Computersystem 1300 ein Multiprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 1302 ohne Einschränkung einen Mikroprozessor für einen Complex Instruction Set Computer („CISC“), einen Mikroprozessor für Reduced Instruction Set Computing („RISC“), einen Very-Long-Instruction-Word-(„VLIW“-)Mikroprozessor, einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie etwa einen digitalen Signalprozessor, beinhalten. In mindestens einer Ausführungsform kann der Prozessor 1302 an einen Prozessorbus 1310 gekoppelt sein, der Datensignale zwischen dem Prozessor 1302 und anderen Komponenten in dem Computersystem 1300 übertragen kann.
  • In mindestens einer Ausführungsform kann der Prozessor 1302 ohne Einschränkung einen internen Level-1-(„L1“)Cache-Speicher („Cache“) 1304 beinhalten. In mindestens einer Ausführungsform kann der Prozessor 1302 einen einzelnen internen Cache oder mehrere Levels von internem Cache aufweisen. In mindestens einer Ausführungsform kann sich der Cache-Speicher extern zu dem Prozessor 1302 befinden. Andere Ausführungsformen können auch eine Kombination aus sowohl internen als auch externen Caches beinhalten, und zwar in Abhängigkeit von der jeweiligen Implementierung und den Anforderungen. In mindestens einer Ausführungsform kann eine Registerbank 1306 unterschiedliche Typen von Daten in verschiedenen Registern speichern, einschließlich ohne Einschränkung Integerregistern, Gleitkommaregistern, Statusregistern und eines Anweisungszeigerregisters.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 1308, einschließlich ohne Einschränkung der Logik zum Durchführen von Integer- und Gleitkommaoperationen, ebenfalls in dem Prozessor 1302. In mindestens einer Ausführungsform kann der Prozessor 1302 auch Festwertspeicher (read only memory - „ROM“) für Mikrocode („µcode“) beinhalten, der Mikrocode für bestimmte Makrobefehle speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 1308 Logik zum Handhaben eines gepackten Anweisungssatzes 1309 beinhalten. In mindestens einer Ausführungsform können durch die Aufnahme des gepackten Anweisungssatzes 1309 in einen Anweisungssatz eines Universalprozessors zusammen mit der damit assoziierten Schaltung zum Ausführen von Anweisungen Operationen, die durch viele Multimedia-Anwendungen verwendet werden, unter Verwendung von gepackten Daten in dem Prozessor 1302 durchgeführt werden. In einer oder mehreren Ausführungsformen können viele Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem eine volle Breite des Datenbusses eines Prozessors zum Durchführen von Operationen an gepackten Daten verwendet wird, wodurch die Notwendigkeit entfallen kann, kleinere Dateneinheiten über den Datenbus dieses Prozessors zu übermitteln, um eine oder mehrere Operationen an einem Datenelement nach dem anderen durchzuführen.
  • In mindestens einer Ausführungsform kann die Ausführungseinheit 1308 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Typen von Logikschaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 1300 ohne Einschränkung einen Speicher 1320 beinhalten. In mindestens einer Ausführungsform kann der Speicher 1320 eine Vorrichtung mit dynamischem Direktzugriffsspeicher („DRAM“), eine Vorrichtung mit statischem Direktzugriffsspeicher („SRAM“), eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung sein. In mindestens einer Ausführungsform kann der Speicher 1320 Anweisung(en) 1319 und/oder Daten 1321 speichern, die durch Datensignale dargestellt werden, die durch den Prozessor 1302 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Systemlogikchip an den Prozessorbus 1310 und den Speicher 1320 gekoppelt sein. In mindestens einer Ausführungsform kann ein Systemlogikchip ohne Einschränkung einen Speichersteuerungs-Hub (memory controller hub - „MCH“) 1316 beinhalten und der Prozessor 1302 mit dem MCH 1316 über den Prozessorbus 1310 kommunizieren. In mindestens einer Ausführungsform kann der MCH 1316 dem Speicher 1320 einen Speicherpfad 1318 mit hoher Bandbreite für die Anweisungs- und Datenspeicherung sowie für die Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. In mindestens einer Ausführungsform kann der MCH 1316 Datensignale zwischen dem Prozessor 1302, dem Speicher 1320 und anderen Komponenten in dem Computersystem 1300 leiten und Datensignale zwischen dem Prozessorbus 1310, dem Speicher 1320 und einer System-E/A-Schnittstelle 1322 überbrücken. In mindestens einer Ausführungsform kann ein Systemlogikchip einen Grafikport zum Koppeln an eine Grafiksteuerung bereitstellen. In mindestens einer Ausführungsform kann der MCH 1316 durch einen Speicherpfad 1318 mit hoher Bandbreite an den Speicher 1320 gekoppelt sein und eine Grafik-/Videokarte 1312 durch eine Accelerated-Graphics-Port-(„AGP“-)Zusammenschaltung 1314 an den MCH 1316 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 1300 die System-E/A-Schnittstelle 1322 als proprietären Hub-Schnittstellenbus verwenden, um den MCH 1316 an einen E/A-Steuerungs-Hub (I/O controller hub - „ICH“) 1330 zu koppeln. In mindestens einer Ausführungsform kann der ICH 1330 direkte Verbindungen zu einigen E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellen. In mindestens einer Ausführungsform kann ein lokaler E/A-Bus ohne Einschränkung einen Hochgeschwindigkeits-E/A-Bus zum Verbinden von Peripheriegeräten mit dem Speicher 1320, einem Chipsatz und dem Prozessor 1302 beinhalten. Beispiele können ohne Einschränkung eine Audiosteuerung 1329, einen Firmware-Hub („Flash-BIOS“) 1328, einen drahtlosen Sendeempfänger 1326, einen Datenspeicher 1324, eine ältere E/A-Steuerung 1323, die Benutzereingabe- und Tastaturschnittstellen 1325 enthält, einen seriellen Erweiterungsport 1327, wie etwa einen Universal-Serial-Bus-(„USB“-)Port, und eine Netzsteuerung 1334 beinhalten. In mindestens einer Ausführungsform kann der Datenspeicher 1324 ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • In mindestens einer Ausführungsform veranschaulicht 13 ein System, das zusammengeschaltete Hardware-Vorrichtungen oder „Chips“ beinhaltet, wohingegen 13 in anderen Ausführungsformen ein beispielhaftes SoC veranschaulichen kann. In mindestens einer Ausführungsform können die in 13 veranschaulichten Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer Kombination davon zusammengeschaltet sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Computersystems 1300 unter Verwendung von Compute-Express-Link-(CXL-)Zusammenschaltungen zusammengeschaltet.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 13 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 14 ist ein Blockdiagramm, das eine elektronische Vorrichtung 1400 zum Nutzen eines Prozessors 1410 gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform kann die elektronische Vorrichtung 1400 zum Beispiel und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, eine mobile Vorrichtung, ein Telefon, ein eingebetteter Computer oder eine beliebige andere geeignete elektronische Vorrichtung sein.
  • In mindestens einer Ausführungsform kann die elektronische Vorrichtung 1400 ohne Einschränkung den Prozessor 1410 beinhalten, der kommunikativ an eine beliebige geeignete Anzahl oder einen beliebigen geeigneten Typ von Komponenten, Peripheriegeräten, Modulen oder Vorrichtungen gekoppelt ist. In mindestens einer Ausführungsform ist der Prozessor 1410 unter Verwendung eines Busses oder einer Schnittstelle gekoppelt, wie etwa eines I2C-Busses, eines Systemverwaltungsbusses (System Management Bus - „SMBus“), eines Low-Pin-Count-(LPC-)Busses, einer seriellen Peripherieschnittstelle (Serial Peripheral Interface - „SPI“), eines High-Definition-Audio-(„HDA“-)Busses, eines Serial-Advance-Technology-Attachment-(„SATA“-)Busses, eines Universal Serial Bus („USB“) (Version 1, 2, 3 usw.) oder eines Universal-Asynchronous-Receiver/Transmitter-(„UART“-)Busses. In mindestens einer Ausführungsform veranschaulicht 14 ein System, das zusammengeschaltete Hardware-Vorrichtungen oder „Chips“ beinhaltet, wohingegen 14 in anderen Ausführungsformen ein beispielhaftes SoC veranschaulichen kann. In mindestens einer Ausführungsform können die in 14 veranschaulichten Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer Kombination davon zusammengeschaltet sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten aus 14 unter Verwendung von Compute-Express-Link(CXL)-Zusammenschaltungen zusammengeschaltet.
  • In mindestens einer Ausführungsform kann 14 eine Anzeige 1424, einen Touchscreen 1425, ein Touchpad 1430, eine Einheit zur Nahfeldkommunikation (Near Field Communications - „NFC“) 1445, einen Sensor-Hub 1440, einen Thermosensor 1446, einen Express-Chipsatz (Express Chipset - „EC“) 1435, ein Trusted Platform Module („TPM“) 1438, BIOS-/Firmware-/Flash-Speicher („BIOS, FW-Flash“) 1422, einen DSP 1460, ein Laufwerk 1420, wie etwa ein Halbleiterlaufwerk (Solid State Disk - „SSD“) oder ein Festplattenlaufwerk (Hard Disk Drive - „HDD“), eine Einheit für ein drahtloses lokales Netzwerk (wireless local area network - „WLAN“) 1450, eine Bluetooth-Einheit 1452, eine Einheit für ein drahtloses Weitverkehrsnetz (Wireless Wide Area Network - „WWAN“) 1456, eine Einheit für ein globales Positionsbestimmungssystem (Global Positioning System - GPS) 1455, eine Kamera („USB-3.0-Kamera“) 1454, wie etwa eine USB-3.0-Kamera, und/oder eine Low-Power-Double-Data-Rate-(„LPDDR“-)Speichereinheit („LPDDR3“) 1415, die zum Beispiel in einem LPDDR3-Standard implementiert ist, beinhalten. Diese Komponenten können jeweils auf geeignete Art und Weise implementiert werden.
  • In mindestens einer Ausführungsform können andere Komponenten durch hierin beschriebene Komponenten kommunikativ an den Prozessor 1410 gekoppelt sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 1441, ein Umgebungslichtsensor (ambient light sensor - „ALS“) 1442, ein Kompass 1443 und ein Gyroskop 1444 kommunikativ an den Sensor-Hub 1440 gekoppelt sein. In mindestens einer Ausführungsform können ein Thermosensor 1439, ein Lüfter 1437, eine Tastatur 1436 und ein Touchpad 1430 kommunikativ an den EC 1435 gekoppelt sein. In mindestens einer Ausführungsform können Lautsprecher 1463, Kopfhörer 1464 und ein Mikrofon („Mikro“) 1465 kommunikativ an eine Audioeinheit („Audiocodec und Klasse-D-Verst.“) 1462 gekoppelt sein, die wiederum kommunikativ an den DSP 1460 gekoppelt sein kann. In mindestens einer Ausführungsform kann die Audioeinheit 1462 zum Beispiel und ohne Einschränkung einen Audiocodierer/-decodierer („Codec“) und einen Klasse-D-Verstärker beinhalten. In mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 1457 kommunikativ an die WWAN-Einheit 1456 gekoppelt sein. In mindestens einer Ausführungsform können Komponenten wie etwa die WLAN-Einheit 1450 und die Bluetooth-Einheit 1452 sowie die WWAN-Einheit 1456 in einem Next Generation Form Factor („NGFF“) implementiert sein.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 14 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 15 veranschaulicht ein Computersystem 1500 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist das Computersystem 1500 so konfiguriert, dass es verschiedene Prozesse und Verfahren implementiert, die in dieser Offenbarung beschrieben sind.
  • In mindestens einer Ausführungsform umfasst das Computersystem 1500 ohne Einschränkung mindestens eine zentrale Verarbeitungseinheit („CPU“) 1502, die mit einem Kommunikationsbus 1510 verbunden ist, der unter Verwendung eines beliebigen geeigneten Protokolls implementiert ist, wie etwa PCI („Peripheral Component Interconnect“), Peripheral Component Interconnect Express („PCI-Express“), AGP („Accelerated Graphics Port“), HyperTransport oder beliebiger anderer Bus- oder Punkt-zu-Punkt-Kommunikationsprotokoll(e). In mindestens einer Ausführungsform beinhaltet das Computersystem 1500 ohne Einschränkung einen Hauptspeicher 1504 und Steuerlogik (z. B. implementiert als Hardware, Software oder eine Kombination davon) und Daten werden in dem Hauptspeicher 1504 gespeichert, der die Form eines Direktzugriffsspeichers („RAM“) annehmen kann. In mindestens einer Ausführungsform stellt ein Netzschnittstellen-Teilsystem („Netzschnittstelle“) 1522 eine Schnittstelle zu anderen Rechenvorrichtungen und Netzen bereit, um Daten von anderen Systemen mit dem Computersystem 1500 zu empfangen und an diese zu übertragen.
  • In mindestens einer Ausführungsform beinhaltet das Computersystem 1500 ohne Einschränkung in mindestens einer Ausführungsform Eingabevorrichtungen 1508, ein Parallelverarbeitungssystem 1512 und Anzeigevorrichtungen 1506, die unter Verwendung einer herkömmlichen Kathodenstrahlröhre (cathode ray tube - „CRT“), einer Flüssigkristallanzeige (liquid crystal display - „LCD“), einer Anzeige mit Leuchtdioden (light emitting diode - „LED“), einer Plasmaanzeige oder anderer geeigneter Anzeigetechnologien implementiert sein können. In mindestens einer Ausführungsform werden Benutzereingaben von Eingabevorrichtungen 1508 wie etwa Tastatur, Maus, Touchpad, Mikrofon usw. empfangen. In mindestens einer Ausführungsform kann sich jedes hierin beschriebene Modul auf einer einzelnen Halbleiterplattform befinden, um ein Verarbeitungssystem zu bilden.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 15 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 16 veranschaulicht ein Computersystem 1600 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet das Computersystem 1600 ohne Einschränkung einen Computer 1610 und einen USB-Stick 1620. In mindestens einer Ausführungsform kann der Computer 1610 ohne Einschränkung eine beliebige Anzahl und einen beliebigen Typ von Prozessoren) (nicht gezeigt) und einen Speicher (nicht gezeigt) beinhalten. In mindestens einer Ausführungsform beinhaltet der Computer 1610 ohne Einschränkung einen Server, eine Cloud-Instanz, einen Laptop und einen Desktop-Computer.
  • In mindestens einer Ausführungsform beinhaltet der USB-Stick 1620 ohne Einschränkung eine Verarbeitungseinheit 1630, eine USB-Schnittstelle 1640 und eine USB-Schnittstellenlogik 1650. In mindestens einer Ausführungsform kann die Verarbeitungseinheit 1630 ein(e) beliebige(s/r) Anweisungsausführungssystem, - apparat oder -vorrichtung sein, das/der/die dazu in der Lage ist, Anweisungen auszuführen. In mindestens einer Ausführungsform kann die Verarbeitungseinheit 1630 ohne Einschränkung eine beliebige Anzahl und einen beliebigen Typ von Verarbeitungskernen (nicht gezeigt) beinhalten. In mindestens einer Ausführungsform umfasst die Verarbeitungseinheit 1630 eine anwendungsspezifische integrierte Schaltung („ASIC“), die zum Durchführen beliebiger Mengen und Typen von Operationen optimiert ist, die mit maschinellem Lernen assoziiert sind. Zum Beispiel ist in mindestens einer Ausführungsform die Verarbeitungseinheit 1630 eine Tensor-Verarbeitungseinheit („TPC“), die zum Durchführen von Inferenzoperationen des maschinellen Lernens optimiert ist. In mindestens einer Ausführungsform ist die Verarbeitungseinheit 1630 eine Sichtverarbeitungseinheit (vision processing unit - „VPU“), die für zum Durchführen von Inferenzoperationen des maschinellen Sehens und des maschinellen Lernens optimiert ist.
  • In mindestens einer Ausführungsform kann die USB-Schnittstelle 1640 ein beliebiger Typ von USB-Stecker oder USB-Buchse sein. Zum Beispiel ist in mindestens einer Ausführungsform die USB-Schnittstelle 1640 eine USB-3.0-Typ-C-Buchse für Daten und Leistung. In mindestens einer Ausführungsform ist die USB-Schnittstelle 1640 ein USB-3.0-Typ-A-Stecker. In mindestens einer Ausführungsform kann die USB-Schnittstellenlogik 1650 eine beliebige Menge und einen beliebigen Typ von Logik beinhalten, die es der Verarbeitungseinheit 1630 ermöglicht, über den USB-Stecker 1640 eine Schnittstelle mit Vorrichtungen (z. B. dem Computer 1610) zu bilden.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 16 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 17A veranschaulicht eine beispielhafte Architektur, in der eine Vielzahl von GPUs 1710(1)- 1710(N) über Hochgeschwindigkeitsverknüpfungen 1740(1)-1740(N) (z. B. Busse, Punkt-zu-Punkt-Zusammenschaltungen usw.) kommunikativ an eine Vielzahl von Mehrkernprozessoren 1705(1)-1705(M) gekoppelt ist. In mindestens einer Ausführungsform unterstützen die Hochgeschwindigkeitsverknüpfungen 1740(1)-1740(N) einen Kommunikationsdurchsatz von 4 GB/s, 30 GB/s, 80 GB/s oder höher. In mindestens einer Ausführungsform können verschiedene Zusammenschaltungsprotokolle verwendet werden, einschließlich, aber nicht beschränkt auf, PCIe 4.0 oder 5.0 und NVLink 2.0. In verschiedenen Figuren stellen „N“ und „M“ positive ganze Zahlen dar, deren Werte von Figur zu Figur unterschiedlich sein können.
  • Zusätzlich und in mindestens einer Ausführungsform sind zwei oder mehr der GPUs 1710 über Hochgeschwindigkeitsverknüpfungen 1729(1)-1729(2) zusammengeschaltet, die unter Verwendung ähnlicher oder anderer Protokolle/Verknüpfungen implementiert sein können als derjenigen, die für die Hochgeschwindigkeitsverknüpfungen 1740(1)-1740(N) verwendet werden. Auf ähnliche Weise können zwei oder mehr der Mehrkernprozessoren 1705 über eine Hochgeschwindigkeitsverknüpfung 1728 verbunden sein, bei der es sich um Busse eines symmetrischen Multiprozessors (symmetric multi-processor - SMP) handeln kann, die mit 20 GB/s, 30 GB/s, 120 GB/s oder höher betrieben werden. Alternativ kann die gesamte Kommunikation zwischen den verschiedenen in 17A gezeigten Systemkomponenten unter Verwendung von ähnlichen Protokollen/Verknüpfungen erzielt werden (z. B. über eine gemeinsame Zusammenschaltungsstruktur).
  • In mindestens einer Ausführungsform ist jeder Mehrkernprozessor 1705 jeweils über Speicherzusammenschaltungen 1726(1)-1726(M) kommunikativ an einen Prozessorspeicher 1701 (1)-1701 (M) gekoppelt und jede GPU 1710(1)-1710(N) jeweils über GPU-Speicherzusammenschaltungen 1750(1)-1750(N) kommunikativ an den GPU-Speicher 1720(1)-1720(N) gekoppelt. In mindestens einer Ausführungsform können die Speicherzusammenschaltungen 1726 und 1750 ähnliche oder unterschiedliche Speicherzugriffstechnologien nutzen. Bei den Prozessorspeichern 1701(1)-1701(M) und den GPU-Speichern 1720 kann es sich beispielsweise und ohne Einschränkung um flüchtige Speicher, wie etwa dynamische Direktzugriffsspeicher (DRAMs) (einschließlich gestapelter DRAMs), Grafik-DDR-SDRAM (GDDR) (z. B. GDDR5, GDDR6) oder Speicher mit hoher Bandbreite (High Bandwidth Memory - HBM), und/oder um nichtflüchtige Speicher, wie etwa 3D XPoint oder Nano-Ram, handeln. In mindestens einer Ausführungsform kann ein Abschnitt der Prozessorspeicher 1701 flüchtiger Speicher sein und ein anderer Abschnitt nichtflüchtiger Speicher sein (z. B. unter Verwendung einer Speicherhierarchie mit zwei Levels (two-level memory - 2LM)).
  • Wie hierin beschrieben, können verschiedene Mehrkernprozessoren 1705 und GPUs 1710 zwar physisch an einen konkreten Speicher 1701 bzw. 1720 gekoppelt sein und/oder eine einheitliche Speicherarchitektur implementiert sein, bei der ein virtueller Systemadressraum (auch als „effektiver Adressraum“ bezeichnet) auf verschiedene physische Speicher verteilt ist. Zum Beispiel können die Prozessorspeicher 1701(1)-1701 (M) jeweils 64 GB Systemspeicheradressraum umfassen und die GPU-Speicher 1720(1)-1720(N) jeweils 32 GB Systemspeicheradressraum umfassen, was zu einem adressierbaren Speicher von insgesamt 256 GB führt, wenn M=2 und N=4. Andere Werte für N und M sind möglich.
  • 17B veranschaulicht zusätzliche Details für eine Zusammenschaltung zwischen einem Mehrkernprozessor 1707 und einem Grafikbeschleunigungsmodul 1746 gemäß einer beispielhaften Ausführungsform. In mindestens einer Ausführungsform kann das Grafikbeschleunigungsmodul 1746 einen oder mehrere GPU-Chips beinhalten, die auf einer Leitungskarte integriert sind, die über eine Hochgeschwindigkeitsverknüpfung 1740 (z. B. einen PCle-Bus, NVLink usw.) an den Prozessor 1707 gekoppelt ist. In mindestens einer Ausführungsform kann das Grafikbeschleunigungsmodul 1746 alternativ auf einem Gehäuse oder Chip mit dem Prozessor 1707 integriert sein.
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 1707 eine Vielzahl von Kernen 1760A-1760D, jeder mit einem Adressenübersetzungspuffer (translation lookaside buffer - „TLB“) 1761A-1761 D und einem oder mehreren Caches 1762A-1762D. In mindestens einer Ausführungsform können die Kerne 1760A-1760D verschiedene andere Komponenten zum Ausführen von Anweisungen und Verarbeiten von Daten beinhalten, die nicht veranschaulicht sind. In mindestens einer Ausführungsform können die Caches 1762A-1762D Level-1-(L1-) und Level-2-(L2-)Caches umfassen. Außerdem können ein oder mehrere gemeinsam genutzte Caches 1756 in den Caches 1762A-1762D enthalten sein und von Sätzen von Kernen 1760A-1760D gemeinsam genutzt werden. Eine Ausführungsform des Prozessors 1707 beinhaltet zum Beispiel 24 Kerne, jeder mit einem eigenen L1-Cache, zwölf gemeinsam genutzten L2-Caches und zwölf gemeinsam genutzten L3-Caches. In dieser Ausführungsform werden ein oder mehrere L2- und L3-Caches von zwei benachbarten Kernen gemeinsam genutzt. In mindestens einer Ausführungsform sind der Prozessor 1707 und das Grafikbeschleunigungsmodul 1746 mit dem Systemspeicher 1714 verbunden, der die Prozessorspeicher 1701(1)-1701(M) aus 17A beinhalten kann.
  • In mindestens einer Ausführungsform wird die Kohärenz für Daten und Anweisungen, die in verschiedenen Caches 1762A-1762D, 1756 und Systemspeicher 1714 gespeichert sind, über Zwischenkernkommunikation über einen Kohärenzbus 1764 aufrechterhalten. Zum Beispiel kann in mindestens einer Ausführungsform jeder Cache eine Cache-Kohärenzlogik/-schaltung aufweisen, die damit assoziiert ist, um als Reaktion auf detektierte Lese- oder Schreibvorgänge in konkreten Cache-Zeilen über den Kohärenzbus 1764 zu kommunizieren. In mindestens einer Ausführungsform wird ein Cache-Snooping-Protokoll über den Kohärenzbus 1764 implementiert, um Cache-Zugriffe per Snooping zu kontrollieren.
  • In mindestens einer Ausführungsform koppelt eine Proxy-Schaltung 1725 das Grafikbeschleunigungsmodul 1746 kommunikativ an den Kohärenzbus 1764, was es dem Grafikbeschleunigungsmodul 1746 ermöglicht, an einem Cache-Kohärenzprotokoll als Peer der Kerne 1760A-1760D teilzunehmen. Insbesondere stellt in mindestens einer Ausführungsform eine Schnittstelle 1735 Verbindungsfähigkeit mit der Proxy-Schaltung 1725 über eine Hochgeschwindigkeitsverknüpfung 1740 bereit und eine Schnittstelle 1737 verbindet das Grafikbeschleunigungsmodul 1746 mit der Hochgeschwindigkeitsverknüpfung 1740.
  • In mindestens einer Ausführungsform stellt eine Beschleuniger-Integrationsschaltung 1736 Cache-Verwaltungs-, Speicherzugriffs-, Kontextverwaltungs- und Unterbrechungsverwaltungsdienste im Auftrag einer Vielzahl von Grafikverarbeitungs-Engines 1731(1)-1731(N) des Grafikbeschleunigungsmoduls 1746 bereit. In mindestens einer Ausführungsform können die Grafikverarbeitungs-Engines 1731(1)-1731(N) jeweils eine separate Grafikverarbeitungseinheit (GPU) umfassen. In mindestens einer Ausführungsform können die Grafikverarbeitungs-Engines 1731(1)-1731(N) alternativ unterschiedliche Typen von Grafikverarbeitungs-Engines innerhalb einer GPU umfassen, wie etwa Grafikausführungseinheiten, Medienverarbeitungs-Engines (z. B. Videocodierer/-decodierer), Abtaster und Blit-Engines. In mindestens einer Ausführungsform kann das Grafikbeschleunigungsmodul 1746 eine GPU mit einer Vielzahl von Grafikverarbeitungs-Engines 1731(1)-1731(N) sein oder die Grafikverarbeitungs-Engines 1731(1)-1731(N) können einzelne GPUs sein, die auf einem gemeinsamen Gehäuse, einer Leitungskarte oder einem Chip integriert sind.
  • In mindestens einer Ausführungsform beinhaltet die Beschleuniger-Integrationsschaltung 1736 eine Speicherverwaltungseinheit (MMU) 1739 zum Durchführen verschiedener Speicherverwaltungsfunktionen, wie etwa Übersetzungen von virtuellem in physischen Speicher (auch als Übersetzungen von effektivem in realen Speicher bezeichnet) und Speicherzugriffsprotokolle zum Zugreifen auf Systemspeicher 1714. Die MMU 1739 kann in mindestens einer Ausführungsform auch einen Adressenübersetzungspuffer (TLB) (nicht gezeigt) für das Caching von Übersetzungen von virtuellen/effektiven in physische/reale Adressen beinhalten. In mindestens einer Ausführungsform kann ein Cache 1738 Befehle und Daten für einen effizienten Zugriff durch die Grafikverarbeitungs-Engines 1731(1)-1731(N) speichern. In mindestens einer Ausführungsform werden die in dem Cache 1738 und in den Grafikspeichern 1733(1)-1733(M) gespeicherten Daten mit den Kern-Caches 1762A-1762D, 1756 und dem Systemspeicher 1714 kohärent gehalten, möglicherweise unter Verwendung einer Abrufeinheit 1744. Wie erwähnt, kann dies über die Proxy-Schaltung 1725 im Auftrag des Caches 1738 und der Speicher 1733(1)-1733(M) erzielt werden (z. B. Senden von Aktualisierungen an den Cache 1738 in Bezug auf Modifikationen/Zugriffe auf Cache-Zeilen in den Prozessor-Caches 1762A-1762D, 1756 und Empfangen von Aktualisierungen von dem Cache 1738).
  • In mindestens einer Ausführungsform speichert ein Satz von Registern 1745 Kontextdaten für Threads, die durch die Grafikverarbeitungs-Engines 1731(1)-1731(N) ausgeführt werden, und eine Kontextverwaltungsschaltung 1748 verwaltet Thread-Kontexte. Zum Beispiel kann die Kontextverwaltungsschaltung 1748 Sicherungs- und Wiederherstellungsoperationen durchführen, um Kontexte verschiedener Threads während Kontextumschaltungen zu sichern und wiederherzustellen (z. B., wenn ein erster Thread gesichert und ein zweiter Thread gespeichert wird, damit ein zweiter Thread durch eine Grafikverarbeitungs-Engine ausgeführt werden kann). Zum Beispiel kann die Kontextverwaltungsschaltung 1748 bei einer Kontextumschaltung derzeitige Registerwerte in einer bezeichneten Region in dem Speicher speichern (z. B. identifiziert durch einen Kontextzeiger). Sie kann dann bei der Rückkehr zu einem Kontext die Registerwerte wiederherstellen. In mindestens einer Ausführungsform empfängt und verarbeitet eine Unterbrechungsverwaltungsschaltung 1747 von Systemvorrichtungen empfangene Unterbrechungen.
  • In mindestens einer Ausführungsform werden virtuelle/effektive Adressen von einer Grafikverarbeitungs-Engine 1731 durch die MMU 1739 in reale/physische Adressen in dem Systemspeicher 1714 übersetzt. In mindestens einer Ausführungsform unterstützt die Beschleuniger-Integrationsschaltung 1736 mehrere (z. B. 4, 8, 16) Grafikbeschleunigermodule 1746 und/oder andere Beschleunigervorrichtungen. Das Grafikbeschleunigermodul 1746 kann in mindestens einer Ausführungsform für eine einzelne Anwendung dediziert sein, die auf dem Prozessor 1707 ausgeführt wird, oder von mehreren Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform ist eine virtualisierte Grafikausführungsumgebung dargestellt, in der die Ressourcen der Grafikverarbeitungs-Engines 1731(1)-1731(N) mit mehreren Anwendungen oder virtuellen Maschinen (VMs) gemeinsam genutzt werden. In mindestens einer Ausführungsform können die Ressourcen in „Slices“ unterteilt werden, die unterschiedlichen VMs und/oder Anwendungen basierend auf Verarbeitungsanforderungen und Prioritäten, die mit VMs und/oder Anwendungen assoziiert sind, zugewiesen sind.
  • In mindestens einer Ausführungsform fungiert die Beschleuniger-Integrationsschaltung 1736 als Brücke zu einem System für das Grafikbeschleunigungsmodul 1746 und sie stellt Adressübersetzungs- und Systemspeicher-Cache-Dienste bereit. Darüber hinaus kann die Beschleuniger-Integrationsschaltung 1736 in mindestens einer Ausführungsform Virtualisierungseinrichtungen für einen Host-Prozessor bereitstellen, um die Virtualisierung der Grafikverarbeitungs-Engines 1731(1)-1731(N), Unterbrechungen und Speicherverwaltung zu verwalten.
  • Da in mindestens einer Ausführungsform die Hardware-Ressourcen der Grafikverarbeitungs-Engines 1731(1)-1731(N) explizit auf einen realen Adressraum abgebildet sind, den der Host-Prozessor 1707 sieht, kann ein beliebiger Host-Prozessor diese Ressourcen direkt unter Verwendung eines effektiven Adresswerts adressieren. In mindestens einer Ausführungsform ist eine Funktion der Beschleuniger-Integrationsschaltung 1736 die physische Trennung der Grafikverarbeitungs-Engines 1731(1)-1731(N), sodass sie einem System als unabhängige Einheiten erscheinen.
  • In mindestens einer Ausführungsform sind ein oder mehrere Grafikspeicher 1733(1)-1733(M) jeweils an jede der Grafikverarbeitungs-Engines 1731(1)-1731(N) gekoppelt und es gilt N=M. In mindestens einer Ausführungsform speichern die Grafikspeicher 1733(1)-1733(M) Anweisungen und Daten, die durch jede der Grafikverarbeitungs-Engines 1731(1)-1731(N) verarbeitet werden. In mindestens einer Ausführungsform kann es sich bei den Grafikspeichern 1733(1)-1733(M) um flüchtige Speicher, wie etwa DRAMs (einschließlich gestapelter DRAMs), GDDR-Speicher (z. B. GDDR5, GDDR6) oder HBM, und/oder um nichtflüchtige Speicher, wie etwa 3D XPoint oder Nano-Ram, handeln.
  • In mindestens einer Ausführungsform können zum Reduzieren des Datenverkehrs über die Hochgeschwindigkeitsverknüpfung 1740 Verzerrungstechniken verwendet werden, um sicherzustellen, dass es sich bei den in den Grafikspeichern 1733(1)-1733(M) gespeicherten Daten um Daten handelt, die am häufigsten durch die Grafikverarbeitungs-Engines 1731(1)-1731(N) verwendet werden und vorzugsweise nicht durch die Kerne 1760A-1760D verwendet werden (zumindest nicht häufig). Auf ähnliche Weise versucht in mindestens einer Ausführungsform ein Verzerrungsmechanismus, Daten, die von den Kernen (und vorzugsweise nicht von den Grafikverarbeitungs-Engines 1731(1)-1731(N)) benötigt werden, innerhalb der Caches 1762A-1762D, 1756 und des Systemspeichers 1714 zu behalten.
  • 17C veranschaulicht eine andere beispielhafte Ausführungsform, bei der die Beschleuniger-Integrationsschaltung 1736 in den Prozessor 1707 integriert ist. In dieser Ausführungsform kommunizieren die Grafikverarbeitungs-Engines 1731(1)-1731(N) direkt über die Hochgeschwindigkeitsverknüpfung 1740 mit der Beschleuniger-Integrationsschaltung 1736 über die Schnittstelle 1737 und die Schnittstelle 1735 (die wiederum eine beliebige Form von Bus- oder Schnittstellenprotokoll sein können). In mindestens einer Ausführungsform kann die Beschleuniger-Integrationsschaltung 1736 ähnliche Operationen durchführen wie diejenigen, die in Bezug auf 17B beschrieben sind, aber möglicherweise mit einem höheren Durchsatz, da sie sich in unmittelbarer Nähe zu dem Kohärenzbus 1764 und den Caches 1762A-1762D, 1756 befindet. In mindestens eine Ausführungsform unterstützt eine Beschleuniger-Integrationsschaltung unterschiedliche Programmiermodelle, einschließlich eines Programmiermodells mit dediziertem Prozess (ohne Virtualisierung des Grafikbeschleunigungsmoduls) und gemeinsam genutzter Programmiermodelle (mit Virtualisierung), die Programmiermodelle beinhalten können, die durch die Beschleuniger-Integrationsschaltung 1736 gesteuert werden, und Programmiermodelle, die durch das Grafikbeschleunigungsmodul 1746 gesteuert werden.
  • In mindestens einer Ausführungsform sind die Grafikverarbeitungs-Engines 1731(1)-1731(N) für eine einzelne Anwendung oder einen einzelnen Prozess unter einem einzelnen Betriebssystem dediziert. In mindestens einer Ausführungsform kann eine einzelne Anwendung andere Anwendungsanforderungen zu der Grafikverarbeitungs-Engines 1731(1)-1731(N) lenken und so eine Virtualisierung innerhalb einer VM/Partition bereitstellen.
  • In mindestens einer Ausführungsform können die Grafikverarbeitungs-Engines 1731(1)-1731(N) von mehreren VM-/Anwendungspartitionen gemeinsam genutzt werden. In mindestens einer Ausführungsform können gemeinsam genutzte Modelle einen System-Hypervisor verwenden, um die Grafikverarbeitungs-Engines 1731(1)-1731(N) zu virtualisieren und den Zugriff durch jedes Betriebssystem zu ermöglichen. Bei Systemen mit einzelner Partition ohne Hypervisor befinden sich die Grafikverarbeitungs-Engines 1731(1)-1731(N) in mindestens einer Ausführungsform im Besitz eines Betriebssystems. In mindestens einer Ausführungsform kann ein Betriebssystem die Grafikverarbeitungs-Engines 1731(1)-1731(N) virtualisieren, um Zugriff auf jeden Prozess oder jede Anwendung bereitzustellen.
  • In mindestens einer Ausführungsform wählt das Grafikbeschleunigungsmodul 1746 oder eine einzelne Grafikverarbeitungs-Engine 1731(1)-1731(N) ein Prozesselement unter Verwendung eines Prozessidentifikators aus. In mindestens einer Ausführungsform sind die Prozesselemente in dem Systemspeicher 1714 gespeichert und unter Verwendung der hierin beschriebenen Technik zur Übersetzung von effektiven Adressen in reale Adressen adressierbar. In mindestens einer Ausführungsform kann ein Prozessidentifikator ein implementationsspezifischer Wert sein, der einem Host-Prozess bereitgestellt wird, wenn er seinen Kontext bei der Grafikverarbeitungs-Engine 1731(1)-1731(N) registriert (das heißt, die Systemsoftware aufruft, um ein Prozesselement zu einer mit dem Prozesselement verknüpften Liste hinzuzufügen). In mindestens einer Ausführungsform können die unteren 16 Bit eines Prozessidentifikators einen Versatz eines Prozesselements innerhalb einer mit dem Prozesselement verknüpften Liste sein.
  • 17D veranschaulicht eine beispielhafte Beschleuniger-Integrations-Slice 1790. In mindestens einer Ausführungsform umfasst eine „Slice“ einen vorgegebenen Abschnitt der Verarbeitungsressourcen der Beschleuniger-Integrationsschaltung 1736. In mindestens einer Ausführungsform ist eine Anwendung effektiver Adressraum 1782 innerhalb des Systemspeichers 1714, der Prozesselemente 1783 speichert. In mindestens einer Ausführungsform werden Prozesselemente 1783 als Reaktion auf GPU-Aufrufe 1781 von Anwendungen 1780, die auf dem Prozessor 1707 ausgeführt werden, gespeichert. In mindestens einer Ausführungsform enthält ein Prozesselement 1783 den Prozesszustand für die entsprechende Anwendung 1780. In mindestens einer Ausführungsform kann ein in dem Prozesselement 1783 enthaltener Arbeitsdeskriptor (work descriptor - WD) 1784 eine einzelne durch eine Anwendung angeforderte Aufgabe sein oder einen Zeiger auf eine Warteschlange von Aufgaben enthalten. In mindestens einer Ausführungsform ist der WD 1784 ein Zeiger auf eine Aufgabeanforderungswarteschlange im effektiven Adressraum 1782 einer Anwendung.
  • In mindestens einer Ausführungsform können das Grafikbeschleunigungsmodul 1746 und/oder die einzelnen Grafikverarbeitungs-Engines 1731(1)-1731(N) von allen oder einer Teilmenge der Prozesse in einem System gemeinsam genutzt werden. In mindestens einer Ausführungsform kann eine Infrastruktur zum Einrichten der Prozesszustände und zum Senden eines WD 1784 an ein Grafikbeschleunigungsmodul 1746 zum Starten einer Aufgabe in einer virtualisierten Umgebung enthalten sein.
  • In mindestens einer Ausführungsform ist ein Programmiermodell mit dediziertem Prozess implementationsspezifisch. In mindestens einer Ausführungsform besitzt in diesem Modell ein einzelner Prozess das Grafikbeschleunigungsmodul 1746 oder eine einzelne Grafikverarbeitungs-Engine 1731. Wenn das Grafikbeschleunigungsmodul 1746 durch einen einzelnen Prozess in Besitz genommen ist, initialisiert ein Hypervisor in mindestens einer Ausführungsform die Beschleuniger-Integrationsschaltung 1736 für eine besitzende Partition und ein Betriebssystem initialisiert die Beschleuniger-Integrationsschaltung 1736 für einen besitzenden Prozess, wenn das Grafikbeschleunigungsmodul 1746 zugeordnet ist.
  • In mindestens einer Ausführungsform ruft im Betrieb eine WD-Abrufeinheit 1791 in der Beschleuniger-Integrations-Slice 1790 den nächsten WD 1784 ab, der eine Angabe der Arbeit beinhaltet, die durch eine oder mehrere Grafikverarbeitungs-Engines des Grafikbeschleunigungsmoduls 1746 zu erledigen ist. In mindestens einer Ausführungsform können Daten von dem WD 1784 in den Registern 1745 gespeichert und durch die MMU 1739, die Unterbrechungsverwaltungsschaltung 1747 und/oder die Kontextverwaltungsschaltung 1748 verwendet werden, wie veranschaulicht. Eine Ausführungsform der MMU 1739 beinhaltet zum Beispiel eine Segment-/Seitenlaufschaltung zum Zugreifen auf Segment-/Seitentabellen 1786 innerhalb des virtuellen Adressraums 1785 eines OS. In mindestens einer Ausführungsform kann die Unterbrechungsverwaltungsschaltung 1747 von dem Grafikbeschleunigungsmodul 1746 empfangene Unterbrechungsereignisse 1792 verarbeiten. Beim Durchführen von Grafikoperationen wird in mindestens einer Ausführungsform eine durch eine Grafikverarbeitungs-Engine 1731(1)-1731(N) erzeugte effektive Adresse 1793 durch die MMU 1739 in eine reale Adresse übersetzt.
  • In mindestens einer Ausführungsform werden Register 1745 für jede Grafikverarbeitungs-Engine 1731(1)-1731 (N) und/oder jedes Grafikbeschleunigungsmodul 1746 dupliziert und sie können durch einen Hypervisor oder ein Betriebssystem initialisiert werden. Jedes dieser duplizierten Register kann in mindestens einer Ausführungsform in einer Beschleuniger-Integrations-Slice 1790 enthalten sein. Beispielhafte Register, die durch einen Hypervisor initialisiert werden können, sind in Tabelle 3 gezeigt. Tabelle 3 - Durch Hypervisor initialisierte Register
    Register # Beschreibung
    1 Slice-Steuerregister
    2 Real Address (RA) Bereichszeiger für geplante Prozesse
    3 Autoritätsmasken-Überschreibungsregister
    4 Unterbrechungsvektor-Tabelleneintragsversatz
    5 Unterbrechungsvektor-Tabelleneintragsgrenze
    6 Zustandsregister
    7 Logische Partitions-ID
    8 Hypervisorbeschleunigernutzungsaufzeichungszeiger einer realen Adresse (RA)
    9 Speicherbeschreibungsregister
  • Beispielhafte Register, die durch ein Betriebssystem initialisiert werden können, sind in Tabelle 6 gezeigt. Tabelle 6 - Durch Betriebssystem initialisierte Register
    Register # Beschreibung
    1 Prozess- und Thread-Identifikation
    2 Kontextspeicher-/-wiederherstellungszeiger der effektiven Adresse (EA)
    3 Beschleunigernutzungsaufzeichnungszeiger einer virtuellen Adresse (VA)
    4 Speichersegmenttabellenzeiger mit virtueller Adresse (VA)
    5 Autoritätsmaske
    6 Arbeitsdeskriptor
  • In mindestens einer Ausführungsform ist jeder WD 1784 spezifisch für ein konkretes Grafikbeschleunigungsmodul 1746 und/oder die Grafikverarbeitungs-Engines 1731(1)-1731(N). In mindestens einer Ausführungsform enthält er alle Informationen, die für eine Grafikverarbeitungs-Engine 1731(1)-1731(N) erforderlich sind, um Arbeit zu verrichten, oder er kann ein Zeiger auf einen Speicherort sein, an dem eine Anwendung eine Befehlswarteschlange von abzuschließender Arbeit eingerichtet hat.
  • 17E veranschaulicht zusätzliche Details für eine beispielhafte Ausführungsform eines gemeinsam genutzten Modells. Diese Ausführungsform beinhaltet einen realen Hypervisor-Adressraum 1798, in dem eine Prozesselementliste 1799 gespeichert ist. In mindestens einer Ausführungsform kann auf den realen Hypervisor-Adressraum 1798 über einen Hypervisor 1796 zugegriffen werden, der die Grafikbeschleunigungsmodul-Engines für das Betriebssystem 1795 virtualisiert.
  • In mindestens einer Ausführungsform ermöglichen gemeinsam genutzte Programmiermodelle, dass alle oder eine Teilmenge von Prozessen aus allen oder einer Teilmenge von Partitionen in einem System ein Grafikbeschleunigungsmodul 1746 verwenden. In mindestens einer Ausführungsform gibt es zwei Programmiermodelle, bei denen das Grafikbeschleunigungsmodul 1746 von mehreren Prozessen und Partitionen gemeinsam genutzt wird, nämlich über Zeit-Slices gemeinsam genutzt und über gerichtete Grafik gemeinsam genutzt.
  • In mindestens einer Ausführungsform besitzt in diesem Modell der System-Hypervisor 1796 das Grafikbeschleunigungsmodul 1746 und er stellt seine Funktion allen Betriebssystemen 1795 zur Verfügung. Damit ein Grafikbeschleunigungsmodul 1746 die Virtualisierung durch den System-Hypervisor 1796 unterstützt, muss in mindestens einer Ausführungsform das Grafikbeschleunigungsmodul 1746 bestimmte Anforderungen einhalten, wie etwa (1) die Aufgabenanforderung einer Anwendung muss autonom sein (das heißt, der Zustand muss zwischen den Aufgaben nicht beibehalten werden), oder das Grafikbeschleunigungsmodul 1746 muss einen Mechanismus zum Sichern und Wiederherstellen von Kontext bereitstellen, (2) das Grafikbeschleunigungsmodul 1746 garantiert, dass die Aufgabenanforderung einer Anwendung innerhalb einer vorgegebenen Zeitspanne abgeschlossen wird, einschließlich etwaiger Übersetzungsfehler, oder das Grafikbeschleunigungsmodul 1746 stellt eine Fähigkeit bereit, die Verarbeitung einer Aufgabe vorwegzunehmen, und (3) dem Grafikbeschleunigungsmodul 1746 muss Fairness zwischen den Prozessen garantiert werden, wenn es in einem gerichteten gemeinsam genutzten Programmiermodell arbeitet.
  • In mindestens einer Ausführungsform ist es erforderlich, dass die Anwendung 1780 einen Systemaufruf des Betriebssystems 1795 mit einem Grafikbeschleunigungsmodultyp, einem Arbeitsdeskriptor (WD), einem Wert des Autoritätsmaskenregisters (authority mask register - AMR) und einem Kontext-Sicherungs-/-Wiederherstellungsbereichszeiger (context save/restore area pointer - CSRP) vornimmt. In mindestens einer Ausführungsform beschreibt der Typ des Grafikbeschleunigungsmoduls eine gezielte Beschleunigungsfunktion für einen Systemaufruf. In mindestens einer Ausführungsform kann der Typ des Grafikbeschleunigungsmoduls ein systemspezifischer Wert sein. In mindestens einer Ausführungsform ist der WD spezifisch für das Grafikbeschleunigungsmodul 1746 formatiert und er kann in Form eines Befehls des Grafikbeschleunigungsmoduls 1746, eines effektiven Adresszeigers auf eine benutzerdefinierte Struktur, eines effektiven Adresszeigers auf eine Befehlswarteschlange oder einer beliebigen anderen Datenstruktur vorliegen, um durch das Grafikbeschleunigungsmodul 1746 zu verrichtende Arbeit zu beschreiben.
  • In mindestens einer Ausführungsform ist ein AMR-Wert ein AMR-Zustand, der für einen derzeitigen Prozess zu verwenden ist. In mindestens einer Ausführungsform ist ein Wert, der an ein Betriebssystem übergeben wird, vergleichbar mit einer Anwendung, die einen AMR festlegt. Falls in mindestens einer Ausführungsform Implementationen der Beschleuniger-Integrationsschaltung 1736 (nicht gezeigt) und des Grafikbeschleunigungsmoduls 1746 kein Benutzer-Autoritätsmasken-Überschreibungsregister (User Authority Mask Override Register - UAMOR) unterstützen, kann ein Betriebssystem einen derzeitigen UAMOR-Wert auf einen AMR-Wert anwenden, bevor ein AMR in einem Hypervisor-Aufruf übergeben wird. In mindestens einer Ausführungsform kann der Hypervisor 1796 optional einen derzeitigen Wert für ein Autoritätsmasken-Überschreibungsregister (Authority Mask Override Register - AMOR) anwenden, bevor ein AMR in dem Prozesselement 1783 platziert wird. In mindestens einer Ausführungsform ist CSRP eines der Register 1745, die eine effektive Adresse eines Bereichs im effektiven Adressraum 1782 einer Anwendung für das Grafikbeschleunigungsmodul 1746 zum Sichern und Wiederherstellen des Kontextzustands enthalten. In mindestens einer Ausführungsform ist dieser Zeiger optional, falls zwischen Aufgaben oder bei der Präemption einer Aufgabe kein Zustand gespeichert werden muss. In mindestens einer Ausführungsform kann der Kontext-Sicherungs-/-Wiederherstellungsbereich ein gepinnter Systemspeicher sein.
  • Beim Empfangen eines Systemaufrufs kann das Betriebssystem 1795 verifizieren, ob die Anwendung 1780 registriert ist und die Autorität zum Verwenden des Grafikbeschleunigungsmoduls 1746 bekommen hat. In mindestens einer Ausführungsform ruft das Betriebssystem 1795 dann den Hypervisor 1796 mit den in Tabelle 5 gezeigten Informationen auf. Tabelle 5 - OS-zu-Hypervisor-Aufrufparameter
    Parameter # Beschreibung
    1 Ein Arbeitsdeskriptor (WD)
    2 Ein Autoritätsmaskenregister(AMR)-wert (möglicherweise maskiert)
    3 Kontextspeicher-/-wiederherstellungsbereichszeiger (Context Save/Restore Area Pointer, CSRP) einer effektiven Adresse (EA)
    4 Eine Prozess-ID (PID) und optionale Thread-ID (TID)
    5 Ein Beschleunigernutzungsaufzeichnungszeiger (AURP) einer virtuellen Adresse (VA)
    6 Virtuelle Adresse eines Speichersegmenttabellenzeigers (storage segment table pointer - SSTP)
    7 Eine logische Unterbrechungsdienstnummer (logical interrupt service number - LISN)
  • In mindestens einer Ausführungsform verifiziert der Hypervisor 1796 beim Empfangen eines Hypervisor-Aufrufs, dass das Betriebssystem 1795 registriert ist und die Autorität zur Verwendung des Grafikbeschleunigungsmoduls 1746 bekommen hat. In mindestens einer Ausführungsform setzt der Hypervisor 1796 dann das Prozesselement 1783 in eine mit dem Prozesselement verknüpfte Liste für einen entsprechenden Typ des Grafikbeschleunigungsmoduls 1746 ein. In mindestens einer Ausführungsform kann ein Prozesselement die in Tabelle 6 gezeigten Informationen beinhalten. Tabelle 6 - Prozesselementinformationen
    Element Nr. Beschreibung
    1 Ein Arbeitsdeskriptor (WD)
    2 Ein Autoritätsmaskenregister(AMR)-wert (möglicherweise maskiert).
    3 Kontextspeicher-/-wiederherstellungsbereichszeiger (CSRP) einer effektiven Adresse (EA)
    4 Eine Prozess-ID (PID) und optionale Thread-ID(TID)
    5 Ein Beschleunigernutzungsaufzeichnungszeiger (AURP) einer virtuellen Adresse (VA)
    6 Virtuelle Adresse eines Speichersegmenttabellenzeigers (storage segment table pointer - SSTP)
    7 Eine logische Unterbrechungsdienstnummer (logical interrupt service number - LISN)
    8 Unterbrechungsvektortabelle, abgeleitet von Hypervisor-Aufrufparametern
    9 Ein Wert des Zustandsregisters (SR)
    10 Eine logische Partitions-ID (LPID)
    11 Ein Hypervisor-Beschleunigernutzungsaufzeichnungszeiger einer realen Adresse (RA)
    12 Speicherdeskriptorregister (Storage Descriptor Register- SDR)
  • In mindestens einer Ausführungsform initialisiert der Hypervisor eine Vielzahl von Registern 1745 der Beschleuniger-Integrations-Slice 1790.
  • Wie in 17F veranschaulicht, wird in mindestens einer Ausführungsform ein einheitlicher Speicher verwendet, der über einen gemeinsamen virtuellen Speicheradressraum adressierbar ist, der zum Zugreifen auf die physischen Prozessorspeicher 1701(1)-1701(N) und die GPU-Speicher 1720(1)-1720(N) verwendet wird. In dieser Implementation nutzen Operationen, die auf den GPUs 1710(1)-1710(N) ausgeführt werden, einen gleichen virtuellen/effektiven Speicheradressraum für den Zugriff auf die Prozessorspeicher 1701(1)-1701(M) und umgekehrt, was die Programmierbarkeit vereinfacht. In mindestens einer Ausführungsform wird ein erster Abschnitt eines virtuellen/effektiven Adressraums dem Prozessorspeicher 1701(1) zugewiesen, ein zweiter Abschnitt dem zweiten Prozessorspeicher 1701(N), ein dritter Abschnitt dem GPU-Speicher 1720(1) und so weiter. In mindestens einer Ausführungsform wird dadurch ein gesamter virtueller/effektiver Speicherraum (mitunter als effektiver Adressraum bezeichnet) über jeden der Prozessorspeicher 1701 und GPU-Speicher 1720 verteilt, was ermöglicht, dass ein beliebiger Prozessor oder eine beliebige GPU auf einen beliebigen physischen Speicher mit einer virtuellen Adresse zugreifen kann, die auf diesen Speicher abgebildet ist.
  • In mindestens einer Ausführungsform stellt die Verzerrungs-/Kohärenzverwaltungsschaltung 1794A-1794E innerhalb einer oder mehrerer MMUs 1739A-1739E die Cache-Kohärenz zwischen Caches eines oder mehrerer Host-Prozessoren (z. B. 1705) und GPUs 1710 sicher und implementiert Verzerrungstechniken, die physische Speicher angeben, in denen bestimmte Typen von Daten gespeichert werden sollten. Wenngleich in mindestens einer Ausführungsform mehrere Instanzen der Verzerrungs-/Kohärenzverwaltungsschaltung 1794A-1794E in 17F veranschaulicht sind, kann die Verzerrungs-/Kohärenzschaltung innerhalb einer MMU eines oder mehrerer Host-Prozessoren 1705 und/oder innerhalb der Beschleuniger-Integrationsschaltung 1736 implementiert sein.
  • Eine Ausführungsform ermöglicht es, dass GPU-Speicher 1720 als Teil des Systemspeichers abgebildet werden und unter Verwendung von Technologie für gemeinsam genutzten virtuellen Speicher (shared virtual memory - SVM) darauf zugegriffen wird, ohne jedoch Rechenleistungsnachteile zu erleiden, die mit der vollständigen System-Cache-Kohärenz assoziiert sind. In mindestens einer Ausführungsform stellt eine Fähigkeit, dass auf GPU-Speicher 1720 als Systemspeicher ohne lästigen Cache-Kohärenz-Overhead zugegriffen wird, eine vorteilhafte Betriebsumgebung für GPU-Abladung bereit. In mindestens einer Ausführungsform ermöglicht diese Anordnung es der Software des Host-Prozessors 1705, ohne den Overhead der traditionellen E/A-DMA-Datenkopien Operanden einzurichten und auf Berechnungsergebnisse zuzugreifen. In mindestens einer Ausführungsform sind an derartigen traditionellen Kopien Treiberaufrufe, Unterbrechungen und auf Speicher abgebildete E/A-Zugriffe (memory mapped I/O accesses - MMIO-Zugriffe) beteiligt, die alle in Bezug auf einfache Speicherzugriffe ineffizient sind. In mindestens einer Ausführungsform kann eine Fähigkeit, ohne Cache-Kohärenz-Overheads auf GPU-Speicher 1720 zuzugreifen, für die Ausführungszeit einer abgeladenen Berechnung entscheidend sein. In Fällen mit erheblichem Streaming-Schreibspeicherverkehr kann zum Beispiel der Cache-Kohärenz-Overhead eine effektive Schreibbandbreite, die durch eine GPU 1710 gesehen wird, in mindestens einer Ausführungsform erheblich reduzieren. In mindestens einer Ausführungsform können die Effizienz der Operandeneinrichtung, die Effizienz des Ergebniszugriffs und die Effizienz der GPU-Berechnung eine Rolle bei der Bestimmung der Effektivität einer GPU-Offload spielen.
  • In mindestens einer Ausführungsform wird die Auswahl von GPU-Verzerrung und Host-Prozessorverzerrung durch eine Verzerrungs-Tracker-Datenstruktur angetrieben. In mindestens einer Ausführungsform kann zum Beispiel eine Verzerrungstabelle verwendet werden, die eine seitengranulare Struktur sein kann (z. B. mit einer Granularität einer Speicherseite gesteuert), die 1 oder 2 Bit pro GPUgebundener Speicherseite beinhaltet. In mindestens einer Ausführungsform kann eine Verzerrungstabelle in einem gestohlenen Speicherbereich eines oder mehrerer GPU-Speicher 1720 implementiert werden, mit oder ohne Verzerrungs-Cache in einer GPU 1710 (um z. B. häufig/kürzlich verwendete Einträge einer Verzerrungstabelle zwischenzuspeichern). Alternativ kann in mindestens einer Ausführungsform eine gesamte Verzerrungstabelle innerhalb einer GPU aufbewahrt werden.
  • In mindestens einer Ausführungsform wird vor dem tatsächlichen Zugriff auf einen GPU-Speicher auf einen Verzerrungstabelleneintrag zugegriffen, der mit jedem Zugriff auf den GPU-gebundenen Speicher 1720 assoziiert ist, wodurch die folgenden Operationen verursacht werden. In mindestens einer Ausführungsform werden lokale Anforderungen von einer GPU 1710, die ihre Seite in der GPU-Verzerrung finden, direkt an einen entsprechenden GPU-Speicher 1720 weitergeleitet. In mindestens einer Ausführungsform werden lokale Anforderungen von einer GPU, die ihre Seite in der Host-Verzerrung finden, an den Prozessor 1705 weitergeleitet (z. B. über eine Hochgeschwindigkeitsverknüpfung, wie hierin beschrieben). In mindestens einer Ausführungsform schließen Anforderungen von dem Prozessor 1705, die eine angeforderte Seite in der Host-Prozessor-Verzerrung finden, eine Anforderung wie ein normales Lesen des Speichers ab. Alternativ können Anforderungen, die an eine GPU-Verzerrungsseite gerichtet sind, an eine GPU 1710 weitergeleitet werden. In mindestens einer Ausführungsform kann eine GPU dann eine Seite in eine Host-Prozessor-Neigung umwandeln, wenn er aktuell keine Seite verwendet. In mindestens einer Ausführungsform kann der Bias-Zustand einer Seite entweder durch einen softwarebasierten Mechanismus, einen hardwareunterstützten softwarebasierten Mechanismus oder, für eine begrenzte Anzahl von Fällen, einen rein hardwarebasierten Mechanismus geändert werden.
  • Ein Mechanismus zum Ändern des Verzerrungszustands setzt in mindestens einer Ausführungsform einen API-Aufruf (z. B. OpenCL) ein, der wiederum den Vorrichtungstreiber einer GPU aufruft, der wiederum eine Nachricht an eine GPU sendet (oder einen Befehlsdeskriptor in die Warteschlange stellt), die sie anweist, einen Verzerrungszustand zu ändern und bei einigen Übergängen eine Cache-Leerungsoperation in einem Host durchzuführen. In mindestens einer Ausführungsform wird eine Cache-Leerungsoperation für einen Übergang von der Verzerrung des Host-Prozessors 1705 zur Verzerrung der GPU verwendet, jedoch nicht für einen entgegengesetzten Übergang.
  • In mindestens einer Ausführungsform wird die Cache-Kohärenz aufrechterhalten, indem bewirkt wird, dass GPU-verzerrte Seiten durch den Host-Prozessor 1705 vorübergehend nicht zwischengespeichert werden können. Um auf diese Seiten zuzugreifen, kann in mindestens einer Ausführungsform der Prozessor 1705 Zugriff von der GPU 1710 anfordern, die den Zugriff sofort gewähren kann oder auch nicht. Um die Kommunikation zwischen dem Prozessor 1705 und der GPU 1710 zu reduzieren, ist es daher in mindestens einer Ausführungsform vorteilhaft, sicherzustellen, dass GPU-verzerrte Seiten solche sind, die durch eine GPU, aber nicht den Host-Prozessor 1705, benötigt werden und umgekehrt.
  • Die Hardware-Strukturen) 915 werden verwendet, um eine oder mehrere Ausführungsformen durchzuführen. Details bezüglich einer Hardware-Struktur(en) 915 können hierin in Verbindung mit 9A und/oder 9B bereitgestellt sein.
  • 18 veranschaulicht beispielhafte integrierte Schaltungen und damit assoziierte Grafikprozessoren, die unter Verwendung eines oder mehrerer IP-Kerne hergestellt werden können, gemäß verschiedenen hierin beschriebenen Ausführungsformen. Zusätzlich zu dem, was veranschaulicht ist, können andere Logiken und Schaltungen in mindestens einer Ausführungsform enthalten sein, einschließlich zusätzlicher Grafikprozessoren/Kerne, Peripherieschnittstellensteuerungen oder Universalprozessorkerne.
  • 18 ist ein Blockdiagramm, das eine beispielhafte integrierte Schaltung 1800 als System auf einem Chip, die unter Verwendung eines oder mehrerer IP-Kerne hergestellt werden kann, gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform beinhaltet die integrierte Schaltung 1800 einen oder mehrere Anwendungsprozessor(en) 1805 (z. B. CPUs), mindestens einen Grafikprozessor 1810 und sie kann zusätzlich einen Bildprozessor 1815 und/oder einen Videoprozessor 1820 beinhalten, von denen jeder beliebige ein modularer IP-Kern sein kann. In mindestens einer Ausführungsform beinhaltet die integrierte Schaltung 1800 Peripherie- oder Buslogik, die eine USB-Steuerung 1825, eine UART-Steuerung 1830, eine SPI/SDIO-Steuerung 1835 und eine I22S/I22C-Steuerung 1840 beinhaltet. In mindestens einer Ausführungsform kann die integrierte Schaltung 1800 eine Anzeigevorrichtung 1845 beinhalten, die an eine oder mehrere von einer High-Definition-Multimedia-Interface-(HDMI-)Steuerung 1850 und einer Mobile-Industry-Processor-Interface-(MIPI-)Anzeigeschnittstelle 1855 gekoppelt ist. In mindestens einer Ausführungsform kann die Speicherung durch ein Flash-Speicherteilsystem 1860 bereitgestellt sein, das Flash-Speicher und eine Flash-Speichersteuerung beinhaltet. In mindestens einer Ausführungsform kann eine Speicherschnittstelle über eine Speichersteuerung 1865 für den Zugriff auf SDRAM- oder SRAM-Speichervorrichtungen bereitgestellt sein. In mindestens einer Ausführungsform beinhalten einige integrierte Schaltungen zusätzlich eine eingebettete Sicherheits-Engine 1870.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in der integrierten Schaltung 1800 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 19A-19B veranschaulichen beispielhafte integrierte Schaltungen und damit assoziierte Grafikprozessoren, die unter Verwendung eines oder mehrerer IP-Kerne hergestellt werden können, gemäß verschiedenen hierin beschriebenen Ausführungsformen. Zusätzlich zu dem, was veranschaulicht ist, können andere Logiken und Schaltungen in mindestens einer Ausführungsform enthalten sein, einschließlich zusätzlicher Grafikprozessoren/Kerne, Peripherieschnittstellensteuerungen oder Universalprozessorkerne.
  • 19A-19B sind Blockdiagramme, die beispielhafte Grafikprozessoren zur Verwendung innerhalb eines SoC gemäß hierin beschriebenen Ausführungsformen veranschaulichen. 19A veranschaulicht einen beispielhaften Grafikprozessor 1910 einer integrierten Schaltung als System auf einem Chip, die unter Verwendung eines oder mehrerer IP-Kerne hergestellt werden kann, gemäß mindestens einer Ausführungsform. 19B veranschaulicht einen zusätzlichen beispielhaften Grafikprozessor 1940 einer integrierten Schaltung als System auf einem Chip, die unter Verwendung eines oder mehrerer IP-Kerne hergestellt werden kann, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der Grafikprozessor 1910 aus 19A ein Grafikprozessorkern mit niedriger Leistung. In mindestens einer Ausführungsform ist der Grafikprozessor 1940 aus 19B ein Grafikprozessorkern mit höherer Rechenleistung. In mindestens einer Ausführungsform kann jeder der Grafikprozessoren 1910, 1940 eine Variante des Grafikprozessors 1810 aus 18 sein.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 1910 einen Vertexprozessor 1905 und einen oder mehrere Fragmentprozessor(en) 1915A-1915N (z. B. 1915A, 1915B, 1915C, 1915D bis 1915N-1 und 1915N). In mindestens einer Ausführungsform kann der Grafikprozessor 1910 unterschiedliche Shader-Programme über separate Logik ausführen, sodass der Vertexprozessor 1905 zum Ausführen von Operationen für Vertex-Shader-Programme optimiert ist, während ein oder mehrere Fragmentprozessor(en) 1915A-1915N Shading-Operationen für Fragmente (z. B. Pixel) für Fragment- oder Pixel-Shader-Programme ausführen. In mindestens einer Ausführungsform führt der Vertexprozessor 1905 eine Vertexverarbeitungsstufe einer 3D-Grafik-Pipeline durch und erzeugt Primitive und Vertexdaten. In mindestens einer Ausführungsform verwenden die Fragmentprozessor(en) 1915A-1915N Primitiv- und Vertexdaten, die durch den Vertexprozessor 1905 erzeugt wurden, um einen Bildspeicher zu produzieren, der auf einer Anzeigevorrichtung angezeigt wird. In mindestens einer Ausführungsform sind die Fragmentprozessor(en) 1915A-1915N zum Ausführen von Fragment-Shader-Programmen optimiert, wie sie in einer OpenGL-API bereitgestellt sind, die zum Durchführen ähnlicher Operationen wie ein Pixel-Shader-Programm verwendet werden können, wie es in einer Direct-3D-API bereitgestellt ist.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 1910 zusätzlich eine(n) oder mehrere Speicherverwaltungseinheiten (MMUs) 1920A-1920B, Cache(s) 1925A-1925B und Schaltungszusammenschaltung(en) 1930A-1930B. In mindestens einer Ausführungsform stellen eine oder mehrere MMU(s) 1920A-1920B die Abbildung von virtuellen auf physische Adressen für den Grafikprozessor 1910 bereit, einschließlich für den Vertexprozessor 1905 und/oder die Fragmentprozessor(en) 1915A-1915N, der/die auf in Speicher gespeicherte Vertex- oder Bild-/Texturdaten verweisen kann/können, zusätzlich zu den in einem oder mehreren Cache(s) 1925A-1925B gespeicherten Vertex- oder Bild-/Texturdaten. In mindestens einer Ausführungsform können eine oder mehrere MMU(s) 1920A-1920B mit anderen MMUs innerhalb eines Systems synchronisiert werden, einschließlich einer oder mehrerer MMUs, die mit einem oder mehreren Anwendungsprozessor(en) 1805, Bildprozessoren 1815 und/oder Videoprozessoren 1820 aus 18 assoziiert sind, sodass jeder Prozessor 1805-1820 an einem gemeinsam genutzten oder einheitlichen virtuellen Speichersystem teilnehmen kann. In mindestens einer Ausführungsform ermöglichen es eine oder mehrere Schaltungszusammenschaltung(en) 1930A-1930B dem Grafikprozessor 1910, entweder über einen internen Bus des SoC oder über eine direkte Verbindung Schnittstellen mit anderen IP-Kernen innerhalb des SoC zu bilden.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 1940 einen oder mehrere Shader-Kern(e) 1955A-1955N (z. B. 1955A, 1955B, 1955C, 1955D, 1955E, 1955F bis 1955N-1 und 1955N), wie in 19B gezeigt, was eine einheitliche Shader-Kernarchitektur bereitstellt, bei der ein einzelner Kern oder Typ oder Kern alle Typen von programmierbarem Shader-Code ausführen kann, einschließlich Shader-Programmcode zum Implementieren von Vertex-Shadern, Fragment-Shadern und/oder Rechen-Shadern. In mindestens einer Ausführungsform kann die Anzahl der Shader-Kerne variieren. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 1940 einen Zwischenkern-Task-Verwalter 1945, der als Thread-Zuteiler fungiert, um Ausführungs-Threads einem oder mehreren Shader-Kernen 1955A-1955N zuzuteilen, sowie eine Kachelungseinheit 1958 zum Beschleunigen von Kachelungsoperationen für das kachelbasierte Rendering, bei dem Rendering-Operationen für eine Szene in dem Bildraum unterteilt werden, um zum Beispiel die lokale räumliche Kohärenz innerhalb einer Szene auszunutzen oder die Verwendung interner Caches zu optimieren.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in der integrierten Schaltung 19A und/oder 19B für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 20A-20B veranschaulichen zusätzliche beispielhafte Grafikprozessorlogik gemäß hierin beschriebenen Ausführungsformen. 20A veranschaulicht einen Grafikkern 2000, der in mindestens einer Ausführungsform innerhalb des Grafikprozessors 1810 aus 18 enthalten sein kann und in mindestens einer Ausführungsform ein einheitlicher Shader-Kern 1955A-1955N wie in 19B sein kann. 20B veranschaulicht eine hochparallele Universal-Grafikverarbeitungseinheit (general-purpose graphics processing unit - „GPGPU“) 2030, die in mindestens einer Ausführungsform für den Einsatz auf einem Multi-Chip-Modul geeignet ist.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkern 2000 einen gemeinsam genutzten Anweisungs-Cache 2002, eine Textureinheit 2018 und einen Cache/gemeinsam genutzten Speicher 2020, die den Ausführungsressourcen innerhalb des Grafikkerns 2000 gemeinsam sind. In mindestens einer Ausführungsform kann der Grafikkern 2000 mehrere Slices 2001A-2001N oder eine Partition für jeden Kern beinhalten und ein Grafikprozessor kann mehrere Instanzen des Grafikkerns 2000 beinhalten. In mindestens einer Ausführungsform können die Slices 2001A-2001N Unterstützungslogik beinhalten, die einen lokalen Anweisungs-Cache 2004A-2004N, einen Thread-Scheduler 2006A-2006N, einen Thread-Zuteiler 2008A-2008N und einen Satz von Registern 2010A-2010N beinhaltet. In mindestens einer Ausführungsform können die Slices 2001A-2001N einen Satz zusätzlicher Funktionseinheiten (additional function units-AFUs 2012A-2012N), Gleitkommaeinheiten (floating-point units - FPUs 2014A-2014N), arithmetisch-logischer Einheiten für Integer (ALUs 2016A-2016N), Adressberechnungseinheiten (address computational units - ACUs 2013A-2013N), Gleitkommaeinheiten mit doppelter Genauigkeit (double-precision floating-point units - DPFPUs 2015A-2015N) und Matrixverarbeitungseinheiten (matrix processing units - MPUs 2017A-2017N) beinhalten.
  • In mindestens einer Ausführungsform können die FPUs 2014A-2014N Gleitkommaoperationen mit einfacher Genauigkeit (32 Bit) und halber Genauigkeit (16 Bit) durchführen, während die DPFPUs 2015A-2015N Gleitkommaoperationen mit doppelter Genauigkeit (64 Bit) durchführen. In mindestens einer Ausführungsform können die ALUs 2016A-2016N Integeroperationen mit variabler Genauigkeit mit 8-Bit, 16-Bit- und 32-Bit-Genauigkeit durchführen und für Operationen mit gemischter Genauigkeit konfiguriert sein. In mindestens einer Ausführungsform können die MPUs 2017A-2017N auch für Matrixoperationen mit gemischter Genauigkeit konfiguriert sein, einschließlich Gleitkomma- und 8-Bit-Integeroperationen mit halber Genauigkeit. In mindestens einer Ausführungsform können die MPUs 2017-2017N eine Vielfalt von Matrixoperationen durchführen, um Anwendungs-Framework für maschinelles Lernen zu beschleunigen, einschließlich des Ermöglichens der Unterstützung für eine beschleunigte allgemeine Matrix-zu-Matrix-Multiplikation (general matrix to matrix multiplication - GEMM). In mindestens einer Ausführungsform können die AFUs 2012A-2012N zusätzliche logische Operationen durchführen, die durch Gleitkomma- oder Integereinheiten nicht unterstützt werden, einschließlich trigonometrischer Operationen (z. B. Sinus, Cosinus usw.).
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in dem Grafikkern 2000 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 20B veranschaulicht in mindestens einer Ausführungsform eine Universalverarbeitungseinheit (GPGPU) 2030, die so konfiguriert sein kann, dass hochparallele Rechenoperationen durch ein Array von Grafikverarbeitungseinheiten durchgeführt werden können. In mindestens einer Ausführungsform kann die GPGPU 2030 direkt mit anderen Instanzen der GPGPU 2030 verknüpft sein, um einen Mehr-GPU-Cluster zu erzeugen, um die Trainingsgeschwindigkeit für tiefe neuronale Netze zu verbessern. In mindestens einer Ausführungsform beinhaltet die GPGPU 2030 eine Host-Schnittstelle 2032, um eine Verbindung mit einem Host-Prozessor zu ermöglichen. In mindestens einer Ausführungsform ist die Host-Schnittstelle 2032 eine PCI-Express-Schnittstelle. In mindestens einer Ausführungsform kann die Host-Schnittstelle 2032 eine anbieterspezifische Kommunikationsschnittstelle oder Kommunikationsstruktur sein. In mindestens einer Ausführungsform empfängt die GPGPU 2030 Befehle von einem Host-Prozessor und sie verwendet einen globalen Scheduler 2034, um mit diesen Befehlen assoziierte Ausführungs-Threads an einen Satz von Rechenclustern 2036A-2036H zu verteilen. In mindestens einer Ausführungsform nutzen die Rechencluster 2036A-2036H einen Cache-Speicher 2038 gemeinsam. In mindestens einer Ausführungsform kann der Cache-Speicher 2038 als übergeordneter Cache für Cache-Speicher innerhalb der Rechencluster 2036A-2036H dienen.
  • In mindestens einer Ausführungsform beinhaltet die GPGPU 2030 Speicher 2044A-2044B, der über einen Satz von Speichersteuerungen 2042A-2042B an die Rechencluster 2036A-2036H gekoppelt ist. In mindestens einer Ausführungsform kann der Speicher 2044A-2044B verschiedene Typen von Speichervorrichtungen beinhalten, darunter dynamischer Direktzugriffsspeicher (DRAM) oder Grafik-Direktzugriffsspeicher, wie etwa synchroner Grafik-Direktzugriffsspeicher (SGRAM), darunter Grafik-Double-Data-Rate-(GDDR-)Speicher.
  • In mindestens einer Ausführungsform beinhalten die Rechencluster 2036A-2036H jeweils einen Satz von Grafikkernen, wie etwa den Grafikkern 2000 aus 20A, der mehrere Typen von Logikeinheiten für Integer und Gleitkommazahlen beinhalten kann, die Rechenoperationen mit einer Reihe von Genauigkeiten durchführen können, einschließlich solcher, die für Berechnungen des maschinellen Lernens geeignet sind. Zum Beispiel kann in mindestens einer Ausführungsform mindestens eine Teilmenge der Gleitkommaeinheiten in jedem der Rechencluster 2036A-2036H so konfiguriert sein, dass sie 16-Bit- oder 32-Bit-Gleitkommaoperationen durchführt, während eine andere Teilmenge der Gleitkommaeinheiten so konfiguriert sein kann, dass sie 64-Bit-Gleitkommaoperationen durchführt.
  • In mindestens einer Ausführungsform können mehrere Instanzen der GPGPU 2030 so konfiguriert sein, dass sie als Rechencluster arbeiten. In mindestens einer Ausführungsform variiert die Kommunikation, die durch die Rechencluster 2036A-2036H für die Synchronisation und den Datenaustausch verwendet wird, je nach Ausführungsform. In mindestens einer Ausführungsform kommunizieren mehrere Instanzen der GPGPU 2030 über die Host-Schnittstelle 2032. In mindestens einer Ausführungsform beinhaltet die GPGPU 2030 einen E/A-Hub 2039, der die GPGPU 2030 mit einer GPU-Verknüpfung 2040 koppelt, die eine direkte Verbindung zu anderen Instanzen der GPGPU 2030 ermöglicht. In mindestens einer Ausführungsform ist die GPU-Verknüpfung 2040 an eine dedizierte GPU-zu-GPU-Brücke gekoppelt, die Kommunikation und Synchronisation zwischen mehreren Instanzen der GPGPU 2030 ermöglicht. In mindestens einer Ausführungsform ist die GPU-Verknüpfung 2040 mit einer Hochgeschwindigkeitszusammenschaltung gekoppelt, um Daten an andere GPGPUs oder Parallelprozessoren zu übertragen und davon zu empfangen. In mindestens einer Ausführungsform befinden sich mehrere Instanzen der GPGPU 2030 in separaten Datenverarbeitungssystemen und sie kommunizieren über eine Netzvorrichtung, auf die über die Host-Schnittstelle 2032 zugegriffen werden kann. In mindestens einer Ausführungsform kann die GPU-Verknüpfung 2040 so konfiguriert sein, dass eine Verbindung zu einem Host-Prozessor zusätzlich zu oder alternativ zu der Host-Schnittstelle 2032 ermöglicht wird.
  • In mindestens einer Ausführungsform kann die GPGPU 2030 dazu konfiguriert sein, neuronale Netze zu trainieren. In mindestens einer Ausführungsform kann die GPGPU 2030 innerhalb einer Inferenzplattform verwendet werden. In mindestens einer Ausführungsform, in der die GPGPU 2030 zum Inferenzieren verwendet wird, kann die GPGPU 2030 weniger Rechencluster 2036A-2036H beinhalten als in dem Fall, dass die GPGPU 2030 zum Trainieren eines neuronalen Netzes verwendet wird. In mindestens einer Ausführungsform kann sich die mit dem Speicher 2044A-2044B assoziierte Speichertechnologie zwischen Inferenz- und Trainingskonfigurationen unterscheiden, wobei den Trainingskonfigurationen Speichertechnologien mit höherer Bandbreite gewidmet sind. In mindestens einer Ausführungsform kann eine Inferenzkonfiguration der GPGPU 2030 inferenzspezifische Anweisungen unterstützen. In mindestens einer Ausführungsform kann eine Inferenzkonfiguration zum Beispiel Unterstützung für eine oder mehrere 8-Bit-Integer-Skalarprodukt-Anweisungen bereitstellen, die während der Inferenzoperationen für eingesetzte neuronale Netze verwendet werden können.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in der GPGPU 2030 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 21 ist ein Blockdiagramm, das ein Computersystem 2100 gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform beinhaltet das Computersystem 2100 ein Verarbeitungsteilsystem 2101, das einen oder mehrere Prozessor(en) 2102 und einen Systemspeicher 2104 aufweist, die über einen Zusammenschaltungspfad kommunizieren, der einen Speicher-Hub 2105 beinhalten kann. In mindestens einer Ausführungsform kann der Speicher-Hub 2105 eine separate Komponente innerhalb einer Chipsatzkomponente sein oder in einen oder mehrere Prozessor(en) 2102 integriert sein. In mindestens einer Ausführungsform ist der Speicher-Hub 2105 über eine Kommunikationsverknüpfung 2106 mit einem E/A-Teilsystem 2111 gekoppelt. In mindestens einer Ausführungsform beinhaltet das E/A-Teilsystem 2111 einen E/A-Hub 2107, der es dem Computersystem 2100 ermöglichen kann, Eingaben von einer oder mehreren Eingabevorrichtung(en) 2108 zu empfangen. In mindestens einer Ausführungsform kann der E/A-Hub 2107 es einer Anzeigesteuerung, die in einem oder mehreren Prozessor(en) 2102 enthalten sein kann, ermöglichen, einer oder mehreren Anzeigevorrichtung(en) 2110A Ausgaben bereitzustellen. In mindestens einer Ausführungsform können eine oder mehrere mit dem E/A-Hub 2107 gekoppelte Anzeigevorrichtung(en) 2110A eine lokale, interne oder eingebettete Anzeigevorrichtung beinhalten.
  • In mindestens einer Ausführungsform beinhaltet das Verarbeitungsteilsystem 2101 einen oder mehrere Parallelprozessor(en) 2112, die über einen Bus oder eine andere Kommunikationsverknüpfung 2113 an den Speicher-Hub 2105 gekoppelt sind. In mindestens einer Ausführungsform kann die Kommunikationsverknüpfung 2113 eine/eines von einer beliebigen Anzahl von standardbasierten Kommunikationsverknüpfungstechnologien oder -protokollen verwenden, wie etwa, aber nicht beschränkt auf, PCI Express oder eine anbieterspezifische Kommunikationsschnittstelle oder Kommunikationsstruktur sein. In mindestens einer Ausführungsform bilden ein oder mehrere Parallelprozessor(en) 2112 ein rechnerisch fokussiertes Parallel- oder Vektorverarbeitungssystem, das eine große Anzahl von Verarbeitungskernen und/oder Verarbeitungsclustern beinhalten kann, wie etwa einen Prozessor mit vielen integrierten Kernen (many-integrated core - MIC). In mindestens einer Ausführungsform bilden einige oder alle der Parallelprozessor(en) 2112 ein Grafikverarbeitungsteilsystem, das Pixel an eine oder mehrere Anzeigevorrichtung(en) 2110A ausgeben kann, die über den E/A-Hub 2107 gekoppelt sind. In mindestens einer Ausführungsform können die Parallelprozessor(en) 2112 zudem eine Anzeigesteuerung und eine Anzeigeschnittstelle (nicht gezeigt) beinhalten, um eine direkte Verbindung zu einer oder mehreren Anzeigevorrichtung(en) 2110B zu ermöglichen.
  • In mindestens einer Ausführungsform kann eine Systemspeichereinheit 2114 mit dem E/A-Hub 2107 verbunden sein, um einen Speichermechanismus für das Computersystem 2100 bereitzustellen. In mindestens einer Ausführungsform kann ein E/A-Switch 2116 verwendet werden, um einen Schnittstellenmechanismus bereitzustellen, der Verbindungen zwischen dem E/A-Hub 2107 und anderen Komponenten ermöglicht, wie etwa einem Netzadapter 2118 und/oder einem drahtlosen Netzadapter 2119, die in eine Plattform integriert werden können, sowie verschiedenen anderen Vorrichtungen, die über eine oder mehrere Erweiterungsvorrichtung(en) 2120 hinzugefügt werden können. In mindestens einer Ausführungsform kann der Netzadapter 2118 ein Ethernet-Adapter oder ein anderer drahtgebundener Netzadapter sein. In mindestens einer Ausführungsform kann der drahtlose Netzadapter 2119 eine oder mehrere Wi-Fi-, Bluetooth-, Nahfeldkommunikations- (NFC-) oder eine andere Netzvorrichtung beinhalten, die ein oder mehrere drahtlose Funkgeräte beinhaltet.
  • In mindestens einer Ausführungsform kann das Computersystem 2100 andere, nicht explizit gezeigte Komponenten beinhalten, einschließlich USB- oder anderer Portverbindungen, optischer Speicherlaufwerke, Videoaufnahmevorrichtungen und dergleichen, die ebenfalls mit dem E/A-Hub 2107 verbunden sein können. In mindestens einer Ausführungsform können die Kommunikationspfade, die verschiedene Komponenten in 21 zusammenschalten, unter Verwendung beliebiger geeigneter Protokolle implementiert werden, wie etwa auf PCI (Peripheral Component Interconnect) basierender Protokolle (z. B. PCI-Express) oder anderer Bus- oder Punkt-zu-Punkt-Kommunikationsschnittstellen und/oder -protokoll(e), wie etwa NV-Link-Hochgeschwindigkeitszusammenschaltung, oder Zusammenschaltungsprotokolle.
  • In mindestens einer Ausführungsform beinhalten die Parallelprozessor(en) 2112 Schaltungen, die für die Grafik- und Videoverarbeitung optimiert sind, einschließlich zum Beispiel Videoausgabeschaltungen, und sie stellen eine Grafikverarbeitungseinheit (GPU) dar. In mindestens einer Ausführungsform beinhalten die Parallelprozessor(en) 2112 Schaltungen, die für Universalverarbeitung optimiert sind. In mindestens einer Ausführungsform können die Komponenten des Computersystems 2100 in ein oder mehrere andere Systemelemente auf einer einzelnen integrierten Schaltung integriert sein. Zum Beispiel können in mindestens einer Ausführungsform die Parallelprozessor(en) 2112, der Speicher-Hub 2105, die Prozessor(en) 2102 und der E/A-Hub 2107 in eine integrierte Schaltung als System auf einem Chip (SoC) integriert sein. In mindestens einer Ausführungsform können die Komponenten des Computersystems 2100 in ein einzelnes Gehäuse integriert sein, um eine Konfiguration mit einem System in einem Gehäuse (system in package - SIP) zu bilden. In mindestens einer Ausführungsform kann mindestens ein Abschnitt der Komponenten des Computersystems 2100 in ein Multi-Chip-Modul (multi-chip module - MCM) integriert sein, das mit anderen Multi-Chip-Modulen zu einem modularen Computerystem zusammengeschaltet sein kann.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 in dem System aus 21 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • PROZESSOREN
  • 22A veranschaulicht einen Parallelprozessor 2200 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können verschiedene Komponenten des Parallelprozessors 2200 unter Verwendung einer oder mehrerer integrierter Schaltungen implementiert werden, wie etwa programmierbare Prozessoren, anwendungsspezifische integrierte Schaltungen (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs). In mindestens einer Ausführungsform ist der veranschaulichte Parallelprozessor 2200 eine Variante eines oder mehrerer Parallelprozessor(en) 2112, die in 21 gemäß einer beispielhaften Ausführungsform gezeigt sind.
  • In mindestens einer Ausführungsform beinhaltet der Parallelprozessor 2200 eine Parallelverarbeitungseinheit 2202. In mindestens einer Ausführungsform beinhaltet die Parallelverarbeitungseinheit 2202 eine E/A-Einheit 2204, die Kommunikation mit anderen Vorrichtungen ermöglicht, einschließlich anderer Instanzen der Parallelverarbeitungseinheit 2202. In mindestens einer Ausführungsform kann die E/A-Einheit 2204 direkt mit anderen Vorrichtungen verbunden sein. In mindestens einer Ausführungsform ist die E/A-Einheit 2204 über die Verwendung einer Hub- oder Switch-Schnittstelle, wie etwa eines Speicher-Hubs 2205, mit anderen Vorrichtungen verbunden. In mindestens einer Ausführungsform bilden Verbindungen zwischen dem Speicher-Hub 2205 und der E/A-Einheit 2204 eine Kommunikationsverknüpfung 2213. In mindestens einer Ausführungsform ist die E/A-Einheit 2204 mit einer Host-Schnittstelle 2206 und einer Speicherkreuzschiene 2216 verbunden, wobei die Host-Schnittstelle 2206 Befehle empfängt, die auf das Durchführen von Verarbeitungsoperationen gerichtet sind, und die Speicherkreuzschiene 2216 Befehle empfängt, die auf das Durchführen von Speicheroperationen gerichtet sind.
  • In mindestens einer Ausführungsform kann, wenn die Host-Schnittstelle 2206 einen Befehlspuffer über die E/A-Einheit 2204 empfängt, die Host-Schnittstelle 2206 Arbeitsoperationen zum Durchführen dieser Befehle an ein Frontend 2208 richten. In mindestens einer Ausführungsform ist das Frontend 2208 mit einem Scheduler 2210 gekoppelt, der so konfiguriert ist, dass er Befehle oder andere Arbeitselemente an ein Verarbeitungsclusterarray 2212 verteilt. In mindestens einer Ausführungsform stellt der Scheduler 2210 sicher, dass das Verarbeitungsclusterarray 2212 ordnungsgemäß konfiguriert ist und sich in einem gültigen Zustand befindet, bevor Tasks an ein Cluster eines Verarbeitungsclusterarrays 2212 verteilt werden. In mindestens einer Ausführungsform ist der Scheduler 2210 über Firmware-Logik implementiert, die auf einem Mikrocontroller ausgeführt wird. In mindestens einer Ausführungsform ist der Mikrocontroller-implementierte Scheduler 2210 so konfigurierbar, dass er komplexe Planungs- und Arbeitsverteilungsoperationen mit grober und feiner Granularität durchführt, was eine schnelle Präemption und Kontextumschaltung von Threads ermöglicht, die auf dem Verarbeitungsarray 2212 ausgeführt werden. In mindestens einer Ausführungsform kann die Host-Software Arbeitslasten für die Planung auf dem Verarbeitungsclusterarray 2212 über einen von mehreren Grafikverarbeitungspfaden nachweisen. In mindestens einer Ausführungsform können die Arbeitslasten dann durch die Logik des Scheduler 2210 innerhalb eines Mikrocontrollers, der den Scheduler 2210 beinhaltet, automatisch auf das Verarbeitungsarraycluster 2212 verteilt werden.
  • In mindestens einer Ausführungsform kann das Verarbeitungsclusterarray 2212 bis zu „N“ Verarbeitungscluster beinhalten (z. B. Cluster 2214A, Cluster 2214B bis Cluster 2214N), wobei „N“ eine positive ganze Zahl darstellt (die eine andere ganze Zahl „N“ sein kann, als in anderen Figuren verwendet). In mindestens einer Ausführungsform kann jeder Cluster 2214A-2214N des Verarbeitungsclusterarrays 2212 eine große Anzahl von nebenläufigen Threads ausführen. In mindestens einer Ausführungsform kann der Scheduler 2210 den Clustern 2214A-2214N des Verarbeitungsclusterarrays 2212 Arbeit zuweisen, indem er verschiedene Planungs- und/oder Arbeitsverteilungsalgorithmen verwendet, die in Abhängigkeit von der Arbeitslast variieren können, die für jeden Typ von Programm oder Berechnung entsteht. In mindestens einer Ausführungsform kann die Planung dynamisch durch den Scheduler 2210 gehandhabt werden oder teilweise durch Compiler-Logik während der Kompilierung der Programmlogik unterstützt werden, die für die Ausführung durch das Verarbeitungsclusterarray 2212 konfiguriert ist. In mindestens einer Ausführungsform können unterschiedliche Cluster 2214A-2214N des Verarbeitungsclusterarrays 2212 zum Verarbeiten unterschiedlicher Programmtypen oder zum Durchführen unterschiedlicher Berechnungstypen zugewiesen sein.
  • In mindestens einer Ausführungsform kann das Verarbeitungsclusterarray 2212 so konfiguriert sein, dass es verschiedene Typen von Parallelverarbeitungsoperationen durchführt. In mindestens einer Ausführungsform ist das Verarbeitungsclusterarray 2212 so konfiguriert, dass es Universal-Parallelberechnungsoperationen durchführt. In mindestens einer Ausführungsform kann das Verarbeitungsclusterarray 2212 zum Beispiel Logik zum Ausführen von Verarbeitungs-Tasks beinhalten, einschließlich des Filterns von Video- und/oder Audiodaten, des Durchführens von Modellierungsoperationen, einschließlich Physikoperationen, und des Durchführens von Datentransformationen.
  • In mindestens einer Ausführungsform ist das Verarbeitungsclusterarray 2212 so konfiguriert, dass es Parallelgrafikverarbeitungsoperationen durchführt. In mindestens einer Ausführungsform kann das Verarbeitungsclusterarray 2212 zusätzliche Logik beinhalten, um die Ausführung derartiger Grafikverarbeitungsoperationen zu unterstützen, einschließlich, aber nicht beschränkt auf, Texturabtastlogik, um Texturoperationen durchzuführen, sowie Tesselierungslogik und andere Vertexverarbeitungslogik. In mindestens einer Ausführungsform kann das Verarbeitungsclusterarray 2212 so konfiguriert sein, dass es grafikverarbeitungsbezogene Shader-Programme ausführt, wie etwa, aber nicht beschränkt auf, Vertex-Shader, Tesselierungs-Shader, Geometrie-Shader und Pixel-Shader. In mindestens einer Ausführungsform kann die Parallelverarbeitungseinheit 2202 Daten aus dem Systemspeicher über die E/A-Einheit 2204 zur Verarbeitung übermitteln. In mindestens einer Ausführungsform können während der Verarbeitung die übermittelten Daten in einem chipinternen Speicher (z. B. dem Parallelprozessorspeicher 2222) während der Verarbeitung gespeichert und dann wieder in den Systemspeicher geschrieben werden.
  • Wenn die Parallelverarbeitungseinheit 2202 zum Durchführen der Grafikverarbeitung verwendet wird, kann der Scheduler 2210 in mindestens einer Ausführungsform so konfiguriert sein, dass er eine Verarbeitungsarbeitslast in annähernd gleich große Tasks aufteilt, um eine bessere Verteilung der Grafikverarbeitungsoperationen auf mehrere Cluster 2214A-2214N des Verarbeitungsclusterarrays 2212 zu ermöglichen. In mindestens einer Ausführungsform können Abschnitte des Verarbeitungsclusterarrays 2212 so konfiguriert sein, dass sie unterschiedliche Verarbeitungstypen durchführen. Zum Beispiel kann in mindestens einer Ausführungsform ein erster Abschnitt so konfiguriert sein, dass er Vertex-Shading und Topologieerzeugung durchführt, kann ein zweiter Abschnitt so konfiguriert sein, dass er Tesselations- und Geometrie-Shading durchführt, und kann ein dritter Abschnitt so konfiguriert sein, dass er Pixel-Shading oder andere Bildschirmraumvorgänge durchführt, um ein gerendertes Bild zur Anzeige zu produzieren. In mindestens einer Ausführungsform können Zwischendaten, die durch einen oder mehrere der Cluster 2214A-2214N produziert werden, in Puffern gespeichert werden, um zu ermöglichen, dass die Zwischendaten zur weiteren Verarbeitung zwischen den Clustern 2214A-2214N übertragen werden.
  • In mindestens einer Ausführungsform kann das Verarbeitungsclusterarray 2212 auszuführende Verarbeitungs-Tasks über den Scheduler 2210 empfangen, der von dem Frontend 2208 Befehle empfängt, die Verarbeitungs-Tasks definieren. In mindestens einer Ausführungsform können die Verarbeitungs-Tasks Indizes der zu verarbeitenden Daten beinhalten, z. B. Oberflächen(-Patch)-Daten, Primitivdaten, Vertex-Daten und/oder Pixeldaten, sowie Statusparameter und Befehle, die definieren, wie die Daten verarbeitet werden sollen (z. B. welches Programm ausgeführt werden soll). In mindestens einer Ausführungsform kann der Scheduler 2210 so konfiguriert sein, dass er den Tasks entsprechende Indizes abruft, oder er kann Indizes von dem Frontend 2208 empfangen. In mindestens einer Ausführungsform kann das Frontend 2208 so konfiguriert sein, dass es sicherstellt, dass das Verarbeitungsclusterarray 2212 in einen gültigen Zustand konfiguriert wird, bevor eine durch eingehende Befehlspuffer (z. B. Batch-Puffer, Push-Puffer usw.) vorgegebene Arbeitslast initiiert wird.
  • In mindestens einer Ausführungsform kann jede von einer oder mehreren Instanzen der Parallelverarbeitungseinheit 2202 mit einem Parallelprozessorspeicher 2222 gekoppelt sein. In mindestens einer Ausführungsform kann auf den Parallelprozessorspeicher 2222 über die Speicherkreuzschiene 2216 zugegriffen werden, die Speicheranforderungen von dem Verarbeitungsclusterarray 2212 sowie von der E/A-Einheit 2204 empfangen kann. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 2216 über eine Speicherschnittstelle 2218 auf den Parallelprozessorspeicher 2222 zugreifen. In mindestens einer Ausführungsform kann die Speicherschnittstelle 2218 mehrere Partitionseinheiten (z. B. Partitionseinheit 2220A, Partitionseinheit 2220B bis Partitionseinheit 2220N) beinhalten, die jeweils an einen Abschnitt (z. B. Speichereinheit) des Parallelprozessorspeichers 2222 gekoppelt werden können. In mindestens einer Ausführungsform ist eine Anzahl der Partitionseinheiten 2220A-2220N so konfiguriert, dass sie gleich einer Anzahl von Speichereinheiten ist, sodass eine erste Partitionseinheit 2220A eine entsprechende erste Speichereinheit 2224A aufweist, eine zweite Partitionseinheit 2220B eine entsprechende Speichereinheit 2224B aufweist und eine N-te Partitionseinheit 2220N eine entsprechende N-te Speichereinheit 2224N aufweist. In mindestens einer Ausführungsform kann eine Anzahl der Partitionseinheiten 2220A-2220N nicht gleich einer Anzahl der Speichereinheiten sein.
  • In mindestens einer Ausführungsform können die Speichereinheiten 2224A-2224N verschiedene Typen von Speichervorrichtungen beinhalten, darunter dynamischer Direktzugriffsspeicher (DRAM) oder Grafik-Direktzugriffsspeicher, wie etwa synchroner Grafik-Direktzugriffsspeicher (SGRAM), darunter Grafik-Double-Data-Rate-(GDDR-)Speicher. In mindestens einer Ausführungsform können die Speichereinheiten 2224A-2224N auch 3D-Stapelspeicher beinhalten, einschließlich, aber nicht beschränkt auf, Speicher mit hoher Bandbreite (HBM). In mindestens einer Ausführungsform können Rendering-Ziele, wie etwa Bildspeicher oder Texturkarten, über die Speichereinheiten 2224A-2224N hinweg gespeichert werden, was es den Partitionseinheiten 2220A-2220N ermöglicht, Abschnitte jedes Rendering-Ziels parallel zu schreiben, um die verfügbare Bandbreite des Parallelprozessorspeichers 2222 effizient zu nutzen. In mindestens einer Ausführungsform kann eine lokale Instanz des Parallelprozessorspeichers 2222 zugunsten einer einheitlichen Speicherausgestaltung ausgeschlossen werden, die Systemspeicher in Verbindung mit lokalem Cache-Speicher nutzt.
  • In mindestens einer Ausführungsform kann ein beliebiger der Cluster 2214A-2214N des Verarbeitungsclusterarrays 2212 Daten verarbeiten, die in beliebige der Speichereinheiten 2224A-2224N innerhalb des Parallelprozessorspeichers 2222 geschrieben werden. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 2216 so konfiguriert sein, dass sie eine Ausgabe jedes Clusters 2214A-2214N an eine beliebige Partitionseinheit 2220A-2220N oder an einen anderen Cluster 2214A-2214N übermittelt, der zusätzliche Verarbeitungsoperationen an einer Ausgabe ausführen kann. In mindestens einer Ausführungsform kann jeder Cluster 2214A-2214N durch die Speicherkreuzschiene 2216 mit der Speicherschnittstelle 2218 kommunizieren, um aus verschiedenen externen Speichervorrichtungen zu lesen oder in diese zu schreiben. In mindestens einer Ausführungsform weist die Speicherkreuzschiene 2216 eine Verbindung mit der Speicherschnittstelle 2218 auf, um mit der E/A-Einheit 2204 zu kommunizieren, sowie eine Verbindung mit einer lokalen Instanz des Parallelprozessorspeichers 2222, was es den Verarbeitungseinheiten innerhalb der unterschiedlichen Verarbeitungscluster 2214A-2214N ermöglicht, mit Systemspeicher oder anderem Speicher zu kommunizieren, der nicht lokal zu der Parallelverarbeitungseinheit 2202 ist. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 2216 virtuelle Kanäle verwenden, um Verkehrsströme zwischen Clustern 2214A-2214N und Partitionseinheiten 2220A-2220N zu trennen.
  • In mindestens einer Ausführungsform können mehrere Instanzen der Parallelverarbeitungseinheit 2202 auf einer einzelnen Erweiterungskarte bereitgestellt sein oder mehrere Erweiterungskarten zusammengeschaltet sein. In mindestens einer Ausführungsform können unterschiedliche Instanzen der Parallelverarbeitungseinheit 2202 so konfiguriert sein, dass sie zusammenarbeiten, auch wenn die unterschiedlichen Instanzen unterschiedliche Anzahlen von Verarbeitungskernen, unterschiedliche Mengen von lokalem Parallelprozessorspeicher und/oder andere Konfigurationsunterschiede aufweisen. Zum Beispiel können in mindestens einer Ausführungsform einige Instanzen der Parallelverarbeitungseinheit 2202 Gleitkommaeinheiten mit höherer Genauigkeit in Bezug auf andere Instanzen beinhalten. In mindestens einer Ausführungsform können Systeme, die eine oder mehrere Instanzen der Parallelverarbeitungseinheit 2202 oder des Parallelprozessors 2200 einbeziehen, in einer Vielfalt von Konfigurationen und Formfaktoren implementiert sein, einschließlich, aber nicht beschränkt auf, Desktop-, Laptop- oder tragbarer persönlicher Computer, Server, Arbeitsstationen, Spielekonsolen und/oder eingebetteter Systeme.
  • 22B ist ein Blockdiagramm einer Partitionseinheit 2220 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist die Partitionseinheit 2220 eine Instanz einer der Partitionseinheiten 2220A-2220N aus 22A. In mindestens einer Ausführungsform beinhaltet die Partitionseinheit 2220 einen L2-Cache 2221, eine Bildspeicherschnittstelle 2225 und eine ROP 2226 (raster operations unit - Rasteroperationeneinheit). In mindestens einer Ausführungsform ist der L2-Cache 2221 ein Lese-/Schreib-Cache, der so konfiguriert ist, dass er Lade- und Sicherungsoperationen durchführt, die von der Speicherkreuzschiene 2216 und der ROP 2226 empfangen werden. In mindestens einer Ausführungsform werden Lesefehler und dringende Rückschreibanforderungen durch den L2-Cache 2221 an die Bildspeicherschnittstelle 2225 zur Verarbeitung ausgegeben. In mindestens einer Ausführungsform können Aktualisierungen auch über die Bildspeicherschnittstelle 2225 zur Verarbeitung an einen Bildspeicher gesendet werden. In mindestens einer Ausführungsform bildet die Bildspeicherschnittstelle 2225 eine Schnittstelle mit einer der Speichereinheiten in dem Parallelprozessorspeicher, wie etwa mit den Speichereinheiten 2224A-2224N aus 22 (z. B. innerhalb des Parallelprozessorspeichers 2222).
  • In mindestens einer Ausführungsform ist die ROP 2226 eine Verarbeitungseinheit, die Rasteroperationen durchführt, wie etwa Schablone, Z-Test, Blending usw. In mindestens einer Ausführungsform gibt die ROP 2226 dann verarbeitete Grafikdaten aus, die in Grafikspeicher gespeichert werden. In mindestens einer Ausführungsform beinhaltet die ROP 2226 Komprimierungslogik, um Tiefen- oder Farbdaten, die in den Speicher geschrieben werden, zu komprimieren und Tiefen- oder Farbdaten, die aus dem Speicher gelesen werden, zu dekomprimieren. In mindestens einer Ausführungsform kann die Komprimierungslogik eine verlustfreie Komprimierungslogik sein, die einen oder mehrere von mehreren Komprimierungsalgorithmen verwendet. In mindestens einer Ausführungsform kann ein Typ der Komprimierung, die durch die ROP 2226 durchgeführt wird, auf Grundlage von statistischen Eigenschaften der zu komprimierenden Daten variieren. Zum Beispiel wird in mindestens einer Ausführungsform die Delta-Farbkomprimierung an Tiefen- und Farbdaten auf einer Kachelbasis durchgeführt.
  • In mindestens einer Ausführungsform ist die ROP 2226 innerhalb jedes Verarbeitungsclusters (z. B. Cluster 2214A-2214N aus 22A) statt innerhalb der Partitionseinheit 2220 enthalten. In mindestens einer Ausführungsform werden Lese- und Schreibanforderungen für Pixeldaten anstelle von Pixelfragmentdaten über die Speicherkreuzschiene 2216 übertragen. In mindestens einer Ausführungsform können verarbeitete Grafikdaten auf einer Anzeigevorrichtung angezeigt werden, wie etwa einer der einen oder der mehreren Anzeigevorrichtung(en) 2110 aus 21, zur weiteren Verarbeitung durch die Prozessor(en) 2102 geroutet werden oder zur weiteren Verarbeitung durch eine der Verarbeitungsentitäten innerhalb des Parallelprozessors 2200 aus 22A geroutet werden.
  • 22C ist ein Blockdiagramm eines Verarbeitungsclusters 2214 innerhalb einer Parallelverarbeitungseinheit gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist ein Verarbeitungscluster eine Instanz eines der Verarbeitungscluster 2214A-2214N aus 22A. In mindestens einer Ausführungsform kann der Verarbeitungscluster 2214 so konfiguriert sein, dass er viele Threads parallel ausführt, wobei sich „Thread“ auf eine Instanz eines konkreten Programms bezieht, die an einem konkreten Satz von Eingabedaten ausgeführt wird. In mindestens einer Ausführungsform werden SIMD(Single-Instruction, Multiple-Data)-Anweisungsausgabetechniken verwendet, um die parallele Ausführung einer großen Anzahl von Threads zu unterstützen, ohne mehrere unabhängige Anweisungseinheiten bereitzustellen. In mindestens einer Ausführungsform werden SIMT(Single-Instruction, Multiple-Thread)-Techniken verwendet, um die parallele Ausführung einer großen Anzahl von im Allgemeinen synchronisierten Threads zu unterstützen, wobei eine gemeinsame Anweisungseinheit verwendet wird, die so konfiguriert ist, dass sie Anweisungen an einen Satz von Verarbeitungs-Engines in jedem der Verarbeitungscluster ausgibt.
  • In mindestens einer Ausführungsform kann der Betrieb des Verarbeitungsclusters 2214 über einen Pipelineverwalter 2232 gesteuert werden, der die Verarbeitungs-Tasks auf die SIMT-Parallelprozessoren verteilt. In mindestens einer Ausführungsform empfängt der Pipelineverwalter 2232 Anweisungen von dem Scheduler 2210 aus 22A und verwaltet die Ausführung dieser Anweisungen über einen Grafik-Multiprozessor 2234 und/oder eine Textureinheit 2236. In mindestens einer Ausführungsform ist der Grafik-Multiprozessor 2234 eine beispielhafte Instanz eines SIMT-Parallelprozessors. In mindestens einer Ausführungsform können jedoch verschiedene Typen von SIMT-Parallelprozessoren mit unterschiedlichen Architekturen innerhalb des Verarbeitungsclusters 2214 enthalten sein. In mindestens einer Ausführungsform können eine oder mehrere Instanzen des Grafik-Multiprozessors 2234 innerhalb eines Verarbeitungsclusters 2214 enthalten sein. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 2234 Daten verarbeiten und eine Datenkreuzschiene 2240 kann verwendet werden, um verarbeitete Daten an eines von mehreren möglichen Zielen, einschließlich anderer Shader-Einheiten, zu verteilen. In mindestens einer Ausführungsform kann der Pipelineverwalter 2232 die Verteilung von verarbeiteten Daten erleichtern, indem er Ziele für zu verteilende verarbeitete Daten über die Datenkreuzschiene 2240 vorgibt.
  • In mindestens einer Ausführungsform kann jeder Grafik-Multiprozessor 2234 innerhalb des Verarbeitungsclusters 2214 einen identischen Satz von funktioneller Ausführungslogik (z. B. arithmetisch-logische Einheiten, Lade-Speicher-Einheiten usw.) beinhalten. In mindestens einer Ausführungsform kann die funktionelle Ausführungslogik pipelineartig konfiguriert sein, wobei neue Anweisungen ausgegeben werden können, bevor vorherige Anweisungen abgeschlossen sind. In mindestens einer Ausführungsform unterstützt die funktionale Ausführungslogik eine Vielzahl von Operationen, darunter Ganzzahl- und Gleitkommaarithmetik, Vergleichsoperationen, boolesche Operationen, Bitverschiebung und die Berechnung verschiedener algebraischer Funktionen. In mindestens einer Ausführungsform kann dieselbe Hardware einer funktionellen Einheit ausgenutzt werden, um unterschiedliche Vorgänge durchzuführen, und eine beliebige Kombination von funktionellen Einheiten vorhanden sein.
  • In mindestens einer Ausführungsform stellen die an den Verarbeitungscluster 2214 übertragenen Anweisungen einen Thread dar. In mindestens einer Ausführungsform ist ein Satz von Threads, der über einen Satz von Parallelverarbeitungs-Engines ausgeführt werden, eine Thread-Gruppe. In mindestens einer Ausführungsform führt eine Thread-Gruppe ein gemeinsames Programm an unterschiedlichen Eingabedaten aus. In mindestens einer Ausführungsform kann jeder Thread innerhalb einer Thread-Gruppe einer anderen Verarbeitungs-Engine innerhalb eines Grafik-Multiprozessors 2234 zugeordnet sein. In mindestens einer Ausführungsform kann eine Thread-Gruppe weniger Threads beinhalten als eine Anzahl von Verarbeitungs-Engines innerhalb des Grafik-Multiprozessors 2234. Wenn eine Thread-Gruppe weniger Threads beinhaltet als eine Anzahl von Verarbeitungs-Engines, können in mindestens einer Ausführungsform eine oder mehrere der Verarbeitungs-Engines während der Zyklen, in denen diese Thread-Gruppe verarbeitet wird, inaktiv sein. In mindestens einer Ausführungsform kann eine Thread-Gruppe auch mehr Threads beinhalten als eine Anzahl von Verarbeitungs-Engines innerhalb des Grafik-Multiprozessors 2234. Wenn eine Thread-Gruppe mehr Threads als eine Anzahl von Verarbeitungs-Engines innerhalb des Grafik-Multiprozessors 2234 beinhaltet, kann das Verarbeiten in mindestens einer Ausführungsform über aufeinanderfolgende Taktzyklen durchgeführt werden. In mindestens einer Ausführungsform können mehrere Thread-Gruppen nebenläufig auf einem Grafik-Multiprozessor 2234 ausgeführt werden.
  • In mindestens einer Ausführungsform beinhaltet der Grafik-Multiprozessor 2234 einen internen Cache-Speicher zum Durchführen von Lade- und Speicheroperationen. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 2234 auf einen internen Cache verzichten und einen Cache-Speicher (z. B. L1-Cache 2248) innerhalb des Verarbeitungsclusters 2214 verwenden. In mindestens einer Ausführungsform hat jeder Grafik-Multiprozessor 2234 auch Zugriff auf L2-Caches innerhalb von Partitionseinheiten (z. B. Partitionseinheiten 2220A-2220N aus 22A), die von allen Verarbeitungsclustern 2214 gemeinsam genutzt werden und zum Übermitteln von Daten zwischen Threads verwendet werden können. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 2234 auch auf den globalen chipexternen Speicher zugreifen, der einen oder mehrere von lokalem Parallelprozessorspeicher und/oder Systemspeicher beinhalten kann. In mindestens einer Ausführungsform kann ein beliebiger Speicher, der zu der Parallelverarbeitungseinheit 2202 extern ist, als globaler Speicher verwendet werden. In mindestens einer Ausführungsform beinhaltet der Verarbeitungscluster 2214 mehrere Instanzen des Grafik-Multiprozessors 2234 und er kann gemeinsame Anweisungen und Daten teilen, die in dem L1-Cache 2248 gespeichert sein können.
  • In mindestens einer Ausführungsform kann jeder Verarbeitungscluster 2214 eine MMU 2245 (Speicherverwaltungseinheit) beinhalten, die so konfiguriert ist, dass sie virtuelle Adressen auf physische Adressen abbildet. In mindestens einer Ausführungsform können sich eine oder mehrere Instanzen der MMU 2245 innerhalb der Speicherschnittstelle 2218 aus 22A befinden. In mindestens einer Ausführungsform beinhaltet die MMU 2245 einen Satz von Seitentabelleneinträgen (page table entries - PTEs), der dazu verwendet wird, eine virtuelle Adresse auf eine physische Adresse einer Kachel abzubilden, sowie optional einen Cache-Zeilenindex. In mindestens einer Ausführungsform kann die MMU 2245 Adressenübersetzungspuffer (TLB) oder Caches beinhalten, die sich innerhalb des Grafik-Multiprozessors 2234 oder L1-Cache 2248 oder Verarbeitungsclusters 2214 befinden können. In mindestens einer Ausführungsform wird eine physische Adresse verarbeitet, um den Oberflächendatenzugriff lokal zu verteilen, um eine effiziente Anforderungsverschachtelung zwischen den Partitionseinheiten zu ermöglichen. In mindestens einer Ausführungsform kann ein Cache-Zeilenindex verwendet werden, um zu bestimmen, ob eine Anforderung für eine Cache-Zeile ein Treffer oder ein Fehler ist.
  • In mindestens einer Ausführungsform kann ein Verarbeitungscluster 2214 derart konfiguriert sein, dass jeder Grafik-Multiprozessor 2234 an eine Textureinheit 2236 zum Durchführen von Texturabbildungsoperationen gekoppelt ist, z. B. zum Bestimmen von Texturabtastpositionen, Lesen von Texturdaten und Filtern von Texturdaten. In mindestens einer Ausführungsform werden die Texturdaten aus einem internen Textur-L1-Cache (nicht gezeigt) oder aus einem L1-Cache innerhalb des Grafik-Multiprozessors 2234 gelesen und je nach Bedarf aus einem L2-Cache, dem lokalen Parallelprozessorspeicher oder dem Systemspeicher abgerufen. In mindestens einer Ausführungsform gibt jeder Grafik-Multiprozessor 2234 verarbeitete Tasks an die Datenkreuzschiene 2240 aus, um einen verarbeiteten Task einem anderen Verarbeitungscluster 2214 zur weiteren Verarbeitung bereitzustellen oder um einen verarbeiteten Task über die Speicherkreuzschiene 2216 in einem L2-Cache, lokalen Parallelprozessorspeicher oder Systemspeicher zu speichern. In mindestens einer Ausführungsform ist eine preROP 2242 (Vor-Rasteroperationeneinheit) so konfiguriert, dass sie Daten von dem Grafik-Multiprozessor 2234 empfängt und Daten an ROP-Einheiten leitet, die sich in den hierin beschriebenen Partitionseinheiten befinden können (z. B. Partitionseinheiten 2220A-2220N aus 22A). In mindestens einer Ausführungsform kann die preROP-Einheit 2242 Optimierungen für die Farbmischung, das Organisieren von Pixelfarbdaten und das Durchführen von Adressübersetzungen durchführen.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in dem Grafikverarbeitungscluster 2214 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 22D zeigt einen Grafik-Multiprozessor 2234 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der Grafik-Multiprozessor 2234 mit dem Pipelineverwalter 2232 des Verarbeitungsclusters 2214 gekoppelt. In mindestens einer Ausführungsform weist der Grafik-Multiprozessor 2234 eine Ausführungspipeline auf, die einen Anweisungs-Cache 2252, eine Anweisungseinheit 2254, eine Adressabbildungseinheit 2256, eine Registerbank 2258, einen oder mehrere Kerne 2262 einer Universal-Grafikverarbeitungseinheit (GPGPU) und eine oder mehrere Lade-/Speichereinheiten 2266 beinhaltet, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform sind die GPGPU-Kerne 2262 und die Lade-/Speichereinheiten 2266 über eine Speicher- und Cache-Zusammenschaltung 2268 mit dem Cache-Speicher 2272 und dem gemeinsam genutzten Speicher 2270 gekoppelt.
  • In mindestens einer Ausführungsform empfängt der Anweisungs-Cache 2252 einen Strom aus auszuführenden Anweisungen von dem Pipelineverwalter 2232. In mindestens einer Ausführungsform werden die Anweisungen in dem Anweisungs-Cache 2252 zwischengespeichert und durch eine Anweisungseinheit 2254 zur Ausführung zugeteilt. In mindestens einer Ausführungsform kann die Anweisungseinheit 2254 Anweisungen als Thread-Gruppen (z. B. Warps) zuteilen, wobei jeder Thread der Thread-Gruppe einer anderen Ausführungseinheit innerhalb der GPGPU-Kerne 2262 zugeordnet wird. In mindestens einer Ausführungsform kann eine Anweisung auf einen beliebigen von einem lokalen, gemeinsam genutzten oder globalen Adressraum zugreifen, indem sie eine Adresse innerhalb eines einheitlichen Adressraums spezifiziert. In mindestens einer Ausführungsform kann die Adressabbildungseinheit 2256 verwendet werden, um Adressen in einem einheitlichen Adressraum in eine eindeutige Speicheradresse zu übersetzen, auf die durch die Lade-/Speichereinheiten 2266 zugegriffen werden kann.
  • In mindestens einer Ausführungsform stellt die Registerbank 2258 einen Satz von Registern für funktionelle Einheiten des Grafik-Multiprozessors 2234 bereit. In mindestens einer Ausführungsform stellt die Registerbank 2258 einen temporären Datenspeicher für Operanden bereit, die mit Datenpfaden von funktionellen Einheiten (z. B. GPGPU-Kernen 2262, Lade-/Speichereinheiten 2266) des Grafik-Multiprozessors 2234 verbunden sind. In mindestens einer Ausführungsform ist die Registerbank 2258 derart zwischen den einzelnen funktionellen Einheiten aufgeteilt, dass jeder funktionellen Einheit ein dedizierter Abschnitt der Registerbank 2258 zugewiesen ist. In mindestens einer Ausführungsform ist die Registerbank 2258 auf unterschiedliche Warps aufgeteilt, die durch den Grafik-Multiprozessor 2234 ausgeführt werden.
  • In mindestens einer Ausführungsform können die GPGPU-Kerne 2262 jeweils Gleitkommaeinheiten (FPUs) und/oder arithmetisch-logische Einheiten (ALUs) für Integer beinhalten, die zum Ausführen von Anweisungen des Grafik-Multiprozessors 2234 verwendet werden. In mindestens einer Ausführungsform können die GPGPU-Kerne 2262 eine ähnliche Architektur aufweisen oder sich bezüglich der Architektur unterscheiden. In mindestens einer Ausführungsform beinhaltet ein erster Abschnitt der GPGPU-Kerne 2262 eine FPU mit einfacher Genauigkeit und eine Integer-ALU, während ein zweiter Abschnitt der GPGPU-Kerne eine FPU mit doppelter Genauigkeit beinhaltet. In mindestens einer Ausführungsform können FPUs den Standard IEEE 754-2008 für Gleitkommaarithmetik implementieren oder Gleitkommaarithmetik mit variabler Genauigkeit ermöglichen. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 2234 zusätzlich eine oder mehrere Festfunktions- oder Spezialfunktionseinheiten beinhalten, um spezifische Funktionen, wie etwa Operationen zum Kopieren von Rechtecken oder Pixel-Blending, durchzuführen. In mindestens einer Ausführungsform können einer oder mehrere der GPGPU-Kerne 2262 auch Fest- oder Spezialfunktionslogik beinhalten.
  • In mindestens einer Ausführungsform beinhalten die GPGPU-Kerne 2262 SIMD-Logik, die dazu in der Lage ist, eine einzelne Anweisung an mehreren Datensätzen durchzuführen. In mindestens einer Ausführungsform können die GPGPU-Kerne 2262 SIMD4-, SIMD8- und SIMD16-Anweisungen physisch ausführen und SIMD1-, SIMD2- und SIMD32-Anweisungen logisch ausführen. In mindestens einer Ausführungsform können SIMD-Anweisungen für GPGPU-Kerne zur Kompilierzeit von einem Shader-Compiler erzeugt werden oder automatisch erzeugt werden, wenn Programme ausgeführt werden, die für Single-Program-Multiple-Data(SPMD)- oder SiMT-Architekturen geschrieben und kompiliert wurden. In mindestens einer Ausführungsform können mehrere Threads eines Programms, das für ein SIMT-Ausführungsmodell ausgestaltet ist, über einen einzigen SIMD-Befehl ausgeführt werden. Zum Beispiel können in mindestens einer Ausführungsform acht SIMT-Threads, die gleiche oder ähnliche Vorgänge durchführen, parallel über eine einzelne SIMD8-Logikeinheit ausgeführt werden.
  • In mindestens einer Ausführungsform ist die Speicher- und Cache-Zusammenschaltung 2268 ein Zusammenschaltungsnetz, das jede funktionelle Einheit des Grafik-Multiprozessors 2234 mit der Registerbank 2258 und dem gemeinsam genutzten Speicher 2270 verbindet. In mindestens einer Ausführungsform ist die Speicher- und Cache-Zusammenschaltung 2268 eine Kreuzschienen-Zusammenschaltung, die es der Lade-/Speichereinheit 2266 ermöglicht, Lade- und Speicheroperationen zwischen dem gemeinsam genutzten Speicher 2270 und der Registerbank 2258 zu implementieren. In mindestens einer Ausführungsform kann die Registerbank 2258 mit der gleichen Frequenz wie die GPGPU-Kerne 2262 arbeiten, sodass die Datenübermittlung zwischen den GPGPU-Kernen 2262 und der Registerbank 2258 eine sehr geringe Latenz aufweisen kann. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher 2270 verwendet werden, um die Kommunikation zwischen Threads zu ermöglichen, die auf funktionellen Einheiten innerhalb des Grafik-Multiprozessors 2234 ausgeführt werden. In mindestens einer Ausführungsform kann der Cache-Speicher 2272 zum Beispiel als Daten-Cache verwendet werden, um Texturdaten zwischenzuspeichern, die zwischen funktionellen Einheiten und der Textureinheit 2236 kommuniziert werden. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher 2270 auch als programmverwalteter Cache verwendet werden. In mindestens einer Ausführungsform können Threads, die auf den GPGPU-Kernen 2262 ausgeführt werden, zusätzlich zu den automatisch zwischengespeicherten Daten, die innerhalb des Cache-Speichers 2272 gespeichert sind, programmatisch Daten innerhalb des gemeinsam genutzten Speichers speichern.
  • In mindestens einer Ausführungsform ist ein Parallelprozessor oder eine GPGPU, wie hierin beschrieben, kommunikativ an Host-/Prozessorkerne gekoppelt, um Grafikoperationen, Operationen des maschinellen Lernens, Musteranalyseoperationen und verschiedene Funktionen einer Universal-GPU (GPGPU) zu beschleunigen. In mindestens einer Ausführungsform kann die GPU über einen Bus oder eine andere Verbindung (z. B. eine Hochgeschwindigkeitsverbindung wie PCIe oder NVLink) mit dem Host-Prozessor (den Prozessorkernen) kommunikativ verbunden sein. In mindestens einer Ausführungsform kann die GPU in demselben Gehäuse oder Chip wie die Kerne integriert sein und über einen internen Prozessorbus bzw. eine interne Verbindung (d. h. innerhalb des Gehäuses oder Chips) mit den Kernen kommunizieren. In mindestens einer Ausführungsform können die Prozessorkerne unabhängig von der Art des Anschlusses der GPU der GPU Arbeit in Form von Befehlsfolgen/Befehlen zuweisen, die in einem Arbeitsdeskriptor enthalten sind. In mindestens einer Ausführungsform verwendet diese GPU dann dedizierte Schaltung/Logik zum effizienten Verarbeiten dieser Befehle/Anweisungen.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in dem Grafik-Multiprozessor 2234 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 23 veranschaulicht ein Mehr-GPU-Computersystem 2300 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Mehr-GPU-Computersystem 2300 einen Prozessor 2302 beinhalten, der über einen Host-Schnittstellen-Switch 2304 an mehrere Universal-Grafikverarbeitungseinheiten (GPGPUs) 2306A-D gekoppelt ist. In mindestens einer Ausführungsform ist der Host-Schnittstellen-Switch 2304 eine PCI-Express-Switch-Vorrichtung, die den Prozessor 2302 an einen PCI-Express-Bus koppelt, über den der Prozessor 2302 mit den GPGPUs 2306A-D kommunizieren kann. In mindestens einer Ausführungsform können die GPGPUs 2306A-D über einen Satz von Hochgeschwindigkeits-Punkt-zu-Punkt-GPU-zu-GPU-Verknüpfungen 2316 zusammengeschaltet sein. In mindestens einer Ausführungsform sind die GPU-zu-GPU-Verknüpfungen 2316 mit jeder der GPGPUs 2306A-D über eine dedizierte GPU-Verknüpfung verbunden. In mindestens einer Ausführungsform ermöglichen die P2P-GPU-Verknüpfungen 2316 direkte Kommunikation zwischen jeder der GPGPUs 2306A-D, ohne dass Kommunikation über den Host-Schnittstellenbus 2304 erforderlich ist, mit dem der Prozessor 2302 verbunden ist. In mindestens einer Ausführungsform, bei der GPU-zu-GPU-Verkehr zu den P2P-GPU-Verknüpfungen 2316 geleitet wird, bleibt der Host-Schnittstellenbus 2304 für den Systemspeicherzugriff oder zum Kommunizieren mit anderen Instanzen des Mehr-GPU-Computersystems 2300 verfügbar, zum Beispiel über eine oder mehrere Netzvorrichtungen. Während in mindestens einer Ausführungsform die GPGPUs 2306A-D mit dem Prozessor 2302 über den Host-Schnittstellen-Switch 2304 verbunden sind, beinhaltet der Prozessor 2302 in mindestens einer Ausführungsform eine direkte Unterstützung für P2P-GPU-Verknüpfungen 2316 und kann direkt mit den GPGPUs 2306A-D verbunden sein.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in dem Mehrfach-GPU-Computersystem 2300 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 24 ist ein Blockdiagramm eines Grafikprozessors 2400 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 2400 eine Ringzusammenschaltung 2402, ein Pipeline-Frontend 2404, eine Medien-Engine 2437 und Grafikkerne 2480A-2480N. In mindestens einer Ausführungsform koppelt die Ringzusammenschaltung 2402 den Grafikprozessor 2400 an andere Verarbeitungseinheiten, einschließlich anderer Grafikprozessoren oder eines oder mehrerer Universalprozessorkerne. In mindestens einer Ausführungsform ist der Grafikprozessor 2400 einer von vielen Prozessoren, die in ein Mehrkern-Verarbeitungssystem integriert sind.
  • In mindestens einer Ausführungsform empfängt der Grafikprozessor 2400 Batches von Befehlen über die Ringzusammenschaltung 2402. In mindestens einer Ausführungsform werden eingehende Befehle durch einen Befehls-Streamer 2403 in dem Pipeline-Frontend 2404 interpretiert. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 2400 skalierbare Ausführungslogik zum Durchführen von 3D-Geometrieverarbeitung und Medienverarbeitung über die Grafikkern(e) 2480A-2480N. In mindestens einer Ausführungsform führt der Befehls-Streamer 2403 der Geometriepipeline 2436 Befehle für 3D-Geometrieverarbeitungsbefehle zu. In mindestens einer Ausführungsform führt der Befehls-Streamer 2403 für mindestens einige Medienverarbeitungsbefehle Befehle einem Video-Frontend 2434 zu, das mit der Medien-Engine 2437 gekoppelt ist. In mindestens einer Ausführungsform beinhaltet die Medien-Engine 2437 eine Videoqualitäts-Engine (Video Quality Engine - VQE) 2430 für die Video- und Bildnachverarbeitung und eine Engine zum Codieren/Decodieren in mehreren Formaten (multi-format encode/decode - MFX) 2433 zum Bereitstellen von hardwarebeschleunigter Codierung und Decodierung von Mediendaten. In mindestens einer Ausführungsform erzeugen die Geometriepipeline 2436 und die Medien-Engine 2437 jeweils Ausführungs-Threads für Thread-Ausführungsressourcen, die durch mindestens einen Grafikkern 2480 bereitgestellt sind.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 2400 skalierbare Thread-Ausführungsressourcen mit den Grafikkernen 2480A-2480N (die modular sein können und mitunter als Kern-Slice bezeichnet werden), die jeweils mehrere Teilkerne 2450A-50N, 2460A-2460N (mitunter als Kernteil-Slice bezeichnet) aufweisen. In mindestens einer Ausführungsform kann der Grafikprozessor 2400 eine beliebige Anzahl von Grafikkernen 2480A aufweisen. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 2400 einen Grafikkern 2480A, der mindestens einen ersten Teilkern 2450A und einen zweiten Teilkern 2460A aufweist. In mindestens einer Ausführungsform ist der Grafikprozessor 2400 ein Prozessor niedriger Leistung mit einem einzelnen Teilkern (z. B. 2450A). In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 2400 mehrere Grafikkerne 2480A-2480N, von denen jeder einen Satz von ersten Teilkernen 2450A-2450N und einen Satz von zweiten Teilkernen 2460A-2460N beinhaltet. In mindestens einer Ausführungsform beinhaltet jeder Teilkern in den ersten Teilkernen 2450A-2450N mindestens einen ersten Satz von Ausführungseinheiten 2452A-2452N und Medien-/Texturabtastern 2454A-2454N. In mindestens einer Ausführungsform beinhaltet jeder Teilkern in den zweiten Teilkernen 2460A-2460N mindestens einen zweiten Satz von Ausführungseinheiten 2462A-2462N und Abtastern 2464A-2464N. In mindestens einer Ausführungsform nutzen die Teilkerne 2450A-2450N, 2460A-2460N jeweils einen Satz von gemeinsam genutzten Ressourcen 2470A-2470N gemeinsam. In mindestens einer Ausführungsform gehören ein gemeinsam genutzter Cache-Speicher und eine Pixelvorgangslogik zu den gemeinsam genutzten Ressourcen.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 915 in dem Grafikprozessor 2400 für Inferenz- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen von neuronalen Netzwerken oder hierin beschriebenen Anwendungsfällen für neuronale Netzwerke berechnet wurden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 25 ist ein Blockdiagramm, das die Mikroarchitektur für einen Prozessor 2500, der Logikschaltungen zum Durchführen von Anweisungen beinhalten kann, gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform kann der Prozessor 2500 Anweisungen durchführen, einschließlich x86-Anweisungen, ARM-Anweisungen, spezialisierter Anweisungen für anwendungsspezifische integrierte Schaltungen (ASICs) usw. In mindestens einer Ausführungsform kann der Prozessor 2500 Register zum Speichern von gepackten Daten beinhalten, wie etwa 64 Bit breite MMX™-Register in Mikroprozessoren, die mit der MMX-Technologie der Intel Corporation aus Santa Clara, Kalifornien, ausgestattet sind. In mindestens einer Ausführungsform können MMX-Register, die sowohl in Integer- als auch in Fließkommaform verfügbar sind, mit Paket-Datenelementen arbeiten, die mit Single-lnstruction-Multiple-Data(„SIMD“)- und Streaming-SIMD-Erweiterungs(„SSE“)-Anweisungen einhergehen. In mindestens einer Ausführungsform können 128 Bit breite XMM-Register, die sich auf die SSE2-, SSE3-, SSE4-, AVX- oder darüber hinausgehende Technologie beziehen (allgemein als „SSEx“ bezeichnet), derartige Operanden mit gepackten Daten aufbewahren. In mindestens einer Ausführungsform kann der Prozessor 2500 Anweisungen zum Beschleunigen von Algorithmen für maschinelles Lernen oder Deep Learning, Training oder Inferenzieren durchführen.
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 2500 ein In-Order-Frontend („Frontend“) 2501 zum Abrufen von auszuführenden Anweisungen und Vorbereiten von Anweisungen, die später in einer Prozessorpipeline verwendet werden sollen. In mindestens einer Ausführungsform kann das Frontend 2501 mehrere Einheiten beinhalten. In mindestens einer Ausführungsform ruft ein Anweisungsvorababrufer 2526 Anweisungen aus dem Speicher ab und speist die Anweisungen in einen Anweisungsdecodierer 2528 ein, der die Anweisungen wiederum decodiert oder interpretiert. Zum Beispiel decodiert in mindestens einer Ausführungsform der Anweisungsdecodierer 2528 eine empfangene Anweisung in eine oder mehrere Operationen, die als „Mikroanweisungen“ oder „Mikrooperationen“ bezeichnet werden (auch als „Mikro-Ops“ oder „µops“ bezeichnet) und die eine Maschine ausführen kann. In mindestens einer Ausführungsform parst der Anweisungsdecodierer 2528 eine Anweisung in einen Opcode und entsprechende Daten- und Steuerfelder, die durch die Mikroarchitektur verwendet werden können, um Operationen gemäß mindestens einer Ausführungsform durchzuführen. In mindestens einer Ausführungsform kann ein Ablaufverfolgungscache 2530 decodierte µops in programmgeordnete Sequenzen oder Abläufe in einer µop-Warteschlange 2534 zur Ausführung zusammenstellen. Wenn der Ablaufverfolgungscache 2530 auf eine komplexe Anweisung stößt, stellt in mindestens einer Ausführungsform ein Mikrocode-ROM 2532 die für den Abschluss einer Operation notwendigen µops bereit.
  • In mindestens einer Ausführungsform können einige Anweisungen in eine einzelne Mikro-Op umgewandelt werden, während andere mehrere Mikro-Ops benötigen, um eine vollständige Operation abzuschließen. In mindestens einer Ausführungsform kann, falls mehr als vier Mikro-Ops benötigt werden, um eine Anweisung abzuschließen, der Anweisungsdecodierer 2528 auf den Mikrocode-ROM 2532 zugreifen, um diese Anweisung durchzuführen. In mindestens einer Ausführungsform kann eine Anweisung in eine kleine Anzahl von Mikro-Ops zur Verarbeitung in dem Anweisungsdecodierer 2528 decodiert werden. In mindestens einer Ausführungsform kann eine Anweisung innerhalb des Mikrocode-ROM 2532 gespeichert werden, wenn eine Reihe von Mikro-Ops zum Erzielen einer derartigen Operation benötigt werden sollte. In mindestens einer Ausführungsform bezieht sich der Ablaufverfolgungscache 2530 auf ein programmierbares logisches Array (programmable logic array - „PLA“) für den Einsprungpunkt, um einen korrekten Mikroanweisungszeiger zum Lesen von Mikrocodesequenzen zu bestimmen, um eine oder mehrere Anweisungen aus dem Mikrocode-ROM 2532 gemäß mindestens einer Ausführungsform abzuschließen. In mindestens einer Ausführungsform kann das Frontend 2501 einer Maschine, nachdem der Mikrocode-ROM 2532 die Sequenzierung von Mikro-Ops für eine Anweisung fertiggestellt hat, das Abrufen von Mikro-Ops aus dem Ablaufverfolgungscache 2530 wiederaufnehmen.
  • In mindestens einer Ausführungsform kann die Engine zur Ausführung in einer anderen Reihenfolge („Out-of-Order-Engine“) 2503 Anweisungen zur Ausführung vorbereiten. In mindestens einer Ausführungsform verfügt die Out-of-Order-Ausführungslogik über eine Reihe von Puffern, um den Fluss der Anweisungen zu glätten und neu zu ordnen, um die Rechenleistung zu optimieren, während sie eine Pipeline durchlaufen und zur Ausführung eingeplant werden. In mindestens einer Ausführungsform umfasst die Out-of-Order-Ausführungs-Engine 2503 ohne Einschränkung einen Zuweiser/Registerumbenenner 2540, eine Speicher-µop-Warteschlange 2542, eine Integer-/Gleitkomma-µop-Warteschlange 2544, einen Speicher-Scheduler 2546, einen schnellen Scheduler 2502, einen langsamen/allgemeinen Gleitkomma-Scheduler („Iangsamer/allgemeiner FP-Scheduler“) 2504 und einen einfachen Gleitkomma-Scheduler („einfacher FP-Scheduler“) 2506. In mindestens einer Ausführungsform werden der schnelle Scheduler 2502, der langsame/allgemeine Gleitkomma-Scheduler 2504 und der einfache Gleitkomma-Scheduler 2506 hierin auch zusammen als „µop-Scheduler 2502, 2504, 2506“ bezeichnet. In mindestens einer Ausführungsform weist der Zuweiser/Registerumbenenner 2540 Maschinenpuffer und Ressourcen zu, die jede µop für die Ausführung benötigt. In mindestens einer Ausführungsform benennt der Zuweiser/Registerumbenenner 2540 logische Register in Einträge in einer Registerbank um. In mindestens einer Ausführungsform weist der Zuweiser/Registerumbenenner 2540 auch einen Eintrag für jede µop in einer von zwei µop-Warteschlangen zu, und zwar in der Speicher-pop-Warteschlange 2542 für Speicheroperationen und der Integer-/Gleitkomma-pop-Warteschlange 2544 für Nicht-Speicheroperationen, vor dem Speicher-Scheduler 2546 und den µop-Schedulern 2502, 2504, 2506. In mindestens einer Ausführungsform bestimmen die µop-Scheduler 2502, 2504, 2506 auf Grundlage der Bereitschaft ihrer abhängigen Eingaberegister-Operandenquellen und der Verfügbarkeit der Ausführungsressourcen, die µops benötigen, um ihre Operation abzuschließen, wann eine µop zur Ausführung bereit ist. In mindestens einer Ausführungsform kann der schnelle Scheduler 2502 auf jeder Hälfte des Haupttaktzyklus planen, während der langsame/allgemeine Gleitkomma-Scheduler 2504 und der einfache Gleitkomma-Scheduler 2506 einmal pro Hauptprozessortaktzyklus planen können. In mindestens einer Ausführungsform vermitteln die µop-Scheduler 2502, 2504, 2506 Zuteilungsports, um µops zur Ausführung einzuplanen.
  • In mindestens einer Ausführungsform beinhaltet der Ausführungsblock 2511 ohne Einschränkung eine Integerregisterbank/ein Umgehungsnetz 2508, eine Gleitkommaregisterbank/ein Umgehungsnetz („FP-Registerbank/Umgehungsnetz“) 2510, Adresserzeugungseinheiten (address generation units - „AGUs“) 2512 und 2514, schnelle arithmetisch-logische Einheiten (ALUs) („schnelle ALUs“) 2516 und 2518, eine langsame arithmetisch-logische Einheit („langsame ALU“) 2520, eine Gleitkomma-ALU („FP“) 2522 und eine Gleitkomma-Bewegungseinheit („FP-Bewegung“) 2524. In mindestens einer Ausführungsform werden die Integerregisterbank/das Umgehungsnetz 2508 und die Gleitkommaregisterbank/das Umgehungsnetz 2510 hierin auch als „Registerbänke 2508, 2510“ bezeichnet. In mindestens einer Ausführungsform werden die AGUSs 2512 und 2514, die schnellen ALUs 2516 und 2518, die langsame ALU 2520, die Gleitkomma-ALU 2522 und die Gleitkomma-Bewegungseinheit 2524 hierin auch als „Ausführungseinheiten 2512, 2514, 2516, 2518, 2520, 2522 und 2524“ bezeichnet. In mindestens einer Ausführungsform kann der Ausführungsblock 2511 ohne Einschränkung eine beliebige Anzahl (einschließlich null) und einen beliebigen Typ von Registerbänken, Umgehungsnetzen, Adresserzeugungseinheiten und Ausführungseinheiten in beliebiger Kombination beinhalten.
  • In mindestens einer Ausführungsform können die Registernetze 2508, 2510 zwischen den µop-Schedulern 2502, 2504, 2506 und den Ausführungseinheiten 2512, 2514, 2516, 2518, 2520, 2522 und 2524 angeordnet sein. In mindestens einer Ausführungsform führt die Integerregisterbank/das Umgehungsnetz 2508 Integeroperationen durch. In mindestens einer Ausführungsform führt die Gleitkommaregisterbank/das Umgehungsnetz 2510 Gleitkommaoperationen durch. In mindestens einer Ausführungsform kann jedes der Registernetze 2508, 2510 ohne Einschränkung ein Umgehungsnetz beinhalten, das gerade abgeschlossene Ergebnisse, die noch nicht in eine Registerbank geschrieben wurden, umgehen oder zu neuen abhängigen µops weiterleiten kann. In mindestens einer Ausführungsform können die Registernetze 2508, 2510 miteinander Daten kommunizieren. In mindestens einer Ausführungsform kann die Integerregisterbank/das Umgehungsnetz 2508 ohne Einschränkung zwei separate Registerbänke beinhalten, eine Registerbank für Daten niederer Ordnung mit zweiunddreißig Bit und eine zweite Registerbank für Daten hoher Ordnung mit zweiunddreißig Bit. In mindestens einer Ausführungsform kann die Gleitkommaregisterbank/das Umgehungsnetz 2510 ohne Einschränkung 128 Bit breite Einträge beinhalten, da Gleitkommaanweisungen typischerweise Operanden mit einer Breite von 64 bis 128 Bit aufweisen.
  • In mindestens einer Ausführungsform können die Ausführungseinheiten 2512, 2514, 2516, 2518, 2520, 2522, 2524 Anweisungen ausführen. In mindestens einer Ausführungsform speichern die Registernetze 2508, 2510 Integer- und Gleitkommadaten-Operandenwerte, die Mikroanweisungen benötigen, um ausgeführt zu werden. In mindestens einer Ausführungsform kann der Prozessor 2500 ohne Einschränkung eine beliebige Anzahl und Kombination der Ausführungseinheiten 2512, 2514, 2516, 2518, 2520, 2522, 2524 beinhalten. In mindestens einer Ausführungsform können die Gleitkomma-ALU 2522 und die Gleitkomma-Bewegungseinheit 2524 Gleitkomma-, MMX-, SIMD-, AVX- und SSE- oder andere Operationen ausführen, einschließlich spezialisierter Anweisungen des maschinellen Lernens. In mindestens einer Ausführungsform kann die Gleitkomma-ALU 2522 ohne Einschränkung einen 64 Bit mal 64 Bit großen Gleitkommadividierer zum Ausführen von Divisions-, Quadratwurzel- und Rest-Mikro-Ops beinhalten. In mindestens einer Ausführungsform können Befehle, die einen Fließkommawert beinhalten, mit Fließkomma-Hardware gehandhabt werden. In mindestens einer Ausführungsform können ALU-Operationen an die schnellen ALUs 2516, 2518 übergeben werden. In mindestens einer Ausführungsform können die schnellen ALUS 2516, 2518 schnelle Operationen mit einer effektiven Latenz von einem halben Taktzyklus ausführen. In mindestens einer Ausführungsform gehen die meisten komplexen Integeroperationen an die langsame ALU 2520, da die langsame ALU 2520 ohne Einschränkung Integerausführungs-Hardware für Operationen vom Typ mit langer Latenz beinhalten kann, wie etwa einen Multiplikator, Verschiebungen, Flag-Logik und Verzweigungsverarbeitung. In mindestens einer Ausführungsform können die Lade-/Speicheroperationen eines Speichers durch die AGUs 2512, 2514 ausgeführt werden. In mindestens einer Ausführungsform können die schnelle ALU 2516, die schnelle ALU 2518 und die langsame ALU 2520 Integeroperationen an 64-Bit-Datenoperanden durchführen. In mindestens einer Ausführungsform können die schnelle ALU 2516, die schnelle ALU 2518 und die langsame ALU 2520 so implementiert sein, dass sie eine Vielfalt von Datenbitgrößen unterstützen, darunter sechzehn, zweiunddreißig, 128, 256 usw. In mindestens einer Ausführungsform können die Gleitkomma-ALU 2522 und die Gleitkomma-Bewegungseinheit 2524 so implementiert sein, dass sie einen Bereich von Operanden unterstützen, der Bits mit verschiedenen Breiten aufweist, wie etwa 128 Bit breite Operanden mit gepackten Daten in Verbindung mit SIMD- und Multimedia-Anweisungen.
  • In mindestens einer Ausführungsform teilen die µop-Scheduler 2502, 2504, 2506 abhängige Operationen zu, bevor die Ausführung einer übergeordneten Last beendet ist. In mindestens einer Ausführungsform kann der Prozessor 2500, da µops in dem Prozessor 2500 spekulativ geplant und ausgeführt werden können, auch Logik zum Handhaben von Speicherfehlern beinhalten. In mindestens einer Ausführungsform können, falls eine Datenlast in einem Daten-Cache einen Fehler verursacht, abhängige Operationen in einer Pipeline im Gange sein, die einen Scheduler mit temporär inkorrekten Daten verlassen haben. In mindestens einer Ausführungsform verfolgt ein Wiederholungsmechanismus die Anweisungen, die falsche Daten verwenden, und führt sie erneut aus. In mindestens einer Ausführungsform kann es erforderlich sein, abhängige Operationen erneut auszuführen, während unabhängige Operationen zu Ende geführt werden können. In mindestens einer Ausführungsform können Scheduler und ein Wiederholungsmechanismus von mindestens einer Ausführungsform eines Prozessors auch so ausgelegt sein, dass sie Befehlssequenzen für Textstring-Vergleichsoperationen abfangen.
  • In mindestens einer Ausführungsform können sich „Register“ auf prozessorinterne Speicherplätze beziehen, die als Teil von Befehlen verwendet werden können, um Operanden zu identifizieren. In mindestens einer Ausführungsform kann es sich bei den Registern um solche handeln, die von außerhalb des Prozessors (aus der Sicht eines Programmierers) verwendet werden können. In mindestens einer Ausführungsform können die Register nicht auf einen bestimmten Schaltungstyp beschränkt sein. Vielmehr kann ein Register in mindestens einer Ausführungsform Daten speichern, Daten bereitstellen und die hierin beschriebenen Funktionen ausführen. In mindestens einer Ausführungsform können die hierin beschriebenen Register durch Schaltkreise innerhalb eines Prozessors unter Verwendung einer beliebigen Anzahl verschiedener Techniken implementiert sein, wie z. B. dedizierte physische Register, dynamisch zugewiesene physische Register unter Verwendung von Registerumbenennung, Kombinationen aus dedizierten und dynamisch zugewiesenen physischen Registern usw. In mindestens einer Ausführungsform werden in Ganzzahlregistern 32-Bit-Ganzzahldaten gespeichert. Eine Registerdatei von mindestens einer Ausführungsform beinhaltet zudem acht Multimedia-SIMD-Register für Paket-Daten.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 915 in den Ausführungsblock 2511 und andere gezeigte oder nicht gezeigte Speicher oder Register einbezogen sein. Zum Beispiel können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der in dem Ausführungsblock 2511 veranschaulichten ALUs verwenden. Darüber hinaus können Gewichtungsparameter im chipinternem oder chipexternem Speicher und/oder in Registern (gezeigt oder nicht gezeigt) gespeichert werden, die ALUs des Ausführungsblocks 2511 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 26 veranschaulicht einen Deep-Learning-Anwendungsprozessor 2600 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform verwendet der Deep-Learning-Anwendungsprozessor 2600 Anweisungen, die bei Ausführung durch den Deep-Learning-Anwendungsprozessor 2600 den Deep-Learning-Anwendungsprozessor 2600 dazu veranlassen, einige oder alle der in dieser gesamten Offenbarung beschriebenen Prozesse und Techniken durchzuführen. In mindestens einer Ausführungsform ist der Deep-Learning-Anwendungsprozessor 2600 eine anwendungsspezifische integrierte Schaltung (ASIC). In mindestens einer Ausführungsform führt der Anwendungsprozessor 2600 Matrixmultiplikationsoperationen entweder „fest verdrahtet“ in Hardware als Ergebnis des Durchführens einer oder mehrerer Anweisungen oder beides durch. In mindestens einer Ausführungsform beinhaltet der Deep-Learning-Anwendungsprozessor 2600 ohne Einschränkung Verarbeitungscluster 2610(1)-2610(12), chipübergreifende Verknüpfungen (Inter-Chip Links - „ICLs“) 2620(1)-2620(12), chipübergreifende Steuerungen (Inter-Chip Controllers - „ICCs“) 2630(1)-2630(2), Speicher mit hoher Bandbreite der zweiten Generation (high-bandwidth memory second generation - „HBM2“) 2640(1)-2640(4), Speichersteuerungen (memory controllers - „Mem Ctrlrs“) 2642(1)-2642(4), eine Bitübertragungsschicht mit Speicher mit hoher Bandbreite (high bandwidth memory physical layer - „HBM PHY“) 2644(1)-2644(4), eine zentrale Verwaltungssteuerungs-Verarbeitungseinheit („Verwaltungssteuerungs-CPU“) 2650, eine serielle Peripherieschnittstelle, eine zwischenintegrierte Schaltung und einen Universal-Eingabe/Ausgabe-Block („SPI, I2C, GPIO“) 2660, eine Interconnect-Express-Steuerung für Peripheriekomponenten und einen Direktspeicherzugriffsblock („PCIe-Steuerung und DMA“) 2670 und einen sechzehnspurigen Interconnect-Express-Port für Peripheriekomponenten („PCI-Express x 16“) 2680.
  • In mindestens einer Ausführungsform können die Verarbeitungscluster 2610 Deep-Learning-Operationen durchführen, einschließlich Inferenz- oder Vorhersageoperationen auf Grundlage von Gewichtungsparametern, die mit einer oder mehreren Trainingstechniken, einschließlich der hierin beschriebenen, berechnet wurden. In mindestens einer Ausführungsform kann jeder Verarbeitungscluster 2610 ohne Einschränkung eine beliebige Anzahl und einen beliebigen Typ von Prozessoren beinhalten. In mindestens einer Ausführungsform kann der Deep-Learning-Anwendungsprozessor 2600 eine beliebige Anzahl und einen beliebigen Typ von Verarbeitungsclustern 2600 beinhalten. In mindestens einer Ausführungsform sind die chipübergreifenden Verknüpfungen 2620 bidirektional. In mindestens einer Ausführungsform ermöglichen die chipübergreifenden Verknüpfungen 2620 und die chipübergreifenden Steuerungen 2630 mehreren Deep-Learning-Anwendungsprozessoren 2600 den Austausch von Informationen, einschließlich Aktivierungsinformationen, die aus dem Durchführen eines oder mehrerer Algorithmen des maschineller Lernens resultieren, die in einem oder mehreren neuronalen Netzen verkörpert sind. In mindestens einer Ausführungsform kann der Deep-Learning-Anwendungsprozessor 2600 eine beliebige Anzahl (einschließlich null) und einen beliebigen Typ von ICLs 2620 und ICCs 2630 beinhalten.
  • In mindestens einer Ausführungsform stellen die HBM2s 2640 insgesamt 32 Gigabyte (GB) Speicher bereit. In mindestens einer Ausführungsform ist HBM2 2640(i) sowohl mit der Speichersteuerung 2642(i) als auch der HBM PHY 2644(i) assoziiert, wobei „i“ eine willkürliche ganze Zahl ist. In mindestens einer Ausführungsform kann eine beliebige Anzahl von HBM2s 2640 einen beliebigen Typ und eine beliebige Gesamtmenge an Speicher mit hoher Bandbreite bereitstellen und mit einer beliebigen Anzahl (einschließlich null) und einem beliebigen Typ von Speichersteuerungen 2642 und HBM PHYs 2644 assoziiert sein. In mindestens einer Ausführungsform können SPI, I2C, GPIO 2660, PCIe-Steuerung und DMA 2670 und/oder PCIe 2680 durch eine beliebige Anzahl und einen beliebigen Typ von Blöcken ersetzt werden, die eine beliebige Anzahl und einen beliebigen Typ von Kommunikationsstandards auf eine beliebige technisch machbare Weise ermöglichen.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird der Deep-Learning-Anwendungsprozessor verwendet, um ein Modell des maschinellen Lernens, wie etwa ein neuronales Netz, zu trainieren, um dem Deep-Learning-Anwendungsprozessor 2600 bereitgestellte Informationen vorherzusagen oder zu inferenzieren. In mindestens einer Ausführungsform wird der Deep-Learning-Anwendungsprozessor 2600 verwendet, um Informationen auf Grundlage eines trainierten Modells des maschinellen Lernens (z. B. eines neuronalen Netzes) zu inferenzieren oder vorherzusagen, das durch einen anderen Prozessor oder ein anderes System oder durch den Deep-Learning-Anwendungsprozessor 2600 trainiert wurde. In mindestens einer Ausführungsform kann der Prozessor 2600 verwendet werden, um einen oder mehrere der hierin beschriebenen Anwendungsfälle für neuronale Netzwerke durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 27 ist ein Blockdiagramm eines neuromorphen Prozessors 2700 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der neuromorphe Prozessor 2700 eine oder mehrere Eingaben von Quellen außerhalb des neuromorphen Prozessors 2700 empfangen. In mindestens einer Ausführungsform können diese Eingaben an ein oder mehrere Neuronen 2702 innerhalb des neuromorphen Prozessors 2700 übertragen werden. In mindestens einer Ausführungsform können die Neuronen 2702 und Komponenten davon unter Verwendung von Schaltungen oder Logik implementiert sein, einschließlich einer oder mehrerer arithmetisch-logischer Einheiten (ALUs). In mindestens einer Ausführungsform kann der neuromorphe Prozessor 2700 ohne Einschränkung Tausende oder Millionen von Instanzen von Neuronen 2702 beinhalten, aber es kann eine beliebige geeignete Anzahl von Neuronen 2702 verwendet werden. In mindestens einer Ausführungsform kann jede Instanz des Neurons 2702 einen Neuroneneingang 2704 und einen Neuronenausgang 2706 beinhalten. In mindestens einer Ausführungsform können die Neuronen 2702 Ausgaben erzeugen, die an Eingänge anderer Instanzen von Neuronen 2702 übertragen werden können. Zum Beispiel können in mindestens einer Ausführungsform die Neuroneneingänge 2704 und die Neuronenausgänge 2706 über Synapsen 2708 zusammengeschaltet sein.
  • In mindestens einer Ausführungsform können die Neuronen 2702 und die Synapsen 2708 derart zusammengeschaltet sein, dass der neuromorphe Prozessor 2700 arbeitet, um die durch den neuromorphen Prozessor 2700 empfangenen Informationen zu verarbeiten oder zu analysieren. In mindestens einer Ausführungsform können die Neuronen 2702 einen Ausgabeimpuls (oder „Fire“ oder „Spike“) übertragen, wenn die über den Neuroneneingang 2704 empfangenen Eingaben einen Schwellenwert überschreiten. In mindestens einer Ausführungsform können die Neuronen 2702 die an den Neuroneneingängen 2704 empfangenen Signale summieren oder integrieren. Zum Beispiel können in mindestens einer Ausführungsform die Neuronen 2702 als leckende Integrate-and-Fire-Neuronen implementiert sein, wobei, falls eine Summe (als „Membranpotential“ bezeichnet) einen Schwellenwert überschreitet, das Neuron 2702 eine Ausgabe (oder „Feuern“) unter Verwendung einer Übertragungsfunktion, wie etwa einer Sigmoid- oder Schwellenwertfunktion, erzeugen kann. In mindestens einer Ausführungsform kann ein leckendes Integrate-and-Fire-Neuron Signale, die an den Neuroneneingängen 2704 empfangen werden, zu einem Membranpotential summieren und auch einen Abklingfaktor (oder ein Leck) anwenden, um ein Membranpotential zu reduzieren. In mindestens einer Ausführungsform kann ein leckendes Integrate-and-Fire-Neuron feuern, falls mehrere Eingabesignale an den Neuroneneingängen 2704 schnell genug empfangen werden, um einen Schwellenwert zu überschreiten (d. h., bevor ein Membranpotential zu weit nach unten abklingt, um zu feuern). In mindestens einer Ausführungsform können die Neuronen 2702 unter Verwendung von Schaltungen oder Logik implementiert sein, die Eingaben empfangen, Eingaben in ein Membranpotential integrieren und ein Membranpotential abklingen lassen. In mindestens einer Ausführungsform können Eingaben gemittelt werden oder kann eine beliebige andere geeignete Übertragungsfunktion verwendet werden. Darüber hinaus können die Neuronen 2702 in mindestens einer Ausführungsform ohne Einschränkung Komparatorschaltungen oder -logik beinhalten, die einen Ausgabe-Spike an dem Neuronenausgang 2706 erzeugen, wenn das Ergebnis des Anwendens einer Übertragungsfunktion auf den Neuroneneingang 2704 einen Schwellenwert überschreitet. In mindestens einer Ausführungsform kann das Neuron 2702, sobald es feuert, zuvor empfangene Eingabeinformationen ignorieren, indem es zum Beispiel ein Membranpotential auf 0 oder einen anderen geeigneten Standardwert zurücksetzt. In mindestens einer Ausführungsform kann das Neuron 2702, sobald das Membranpotential auf 0 zurückgesetzt wurde, nach einer geeigneten Zeitspanne (oder Refraktärzeit) den normalen Betrieb wiederaufnehmen.
  • In mindestens einer Ausführungsform können die Neuronen 2702 durch die Synapsen 2708 zusammengeschaltet sein. In mindestens einer Ausführungsform können die Synapsen 2708 arbeiten, um Signale von einem Ausgang eines ersten Neurons 2702 an einen Eingang eines zweiten Neurons 2702 zu übertragen. In mindestens einer Ausführungsform können die Neuronen 2702 Informationen über mehr als eine Instanz der Synapse 2708 übertragen. In mindestens einer Ausführungsform können eine oder mehrere Instanzen des Neuronenausgangs 2706 über eine Instanz der Synapse 2708 mit einer Instanz des Neuroneneingangs 2704 in dem gleichen Neuron 2702 verbunden sein. In mindestens einer Ausführungsform kann eine Instanz des Neurons 2702, die eine über eine Instanz der Synapse 2708 zu übertragende Ausgabe erzeugt, als „präsynaptisches Neuron“ in Bezug auf diese Instanz der Synapse 2708 bezeichnet werden. In mindestens einer Ausführungsform kann eine Instanz des Neurons 2702, die eine über eine Instanz der Synapse 2708 übertragene Eingabe empfängt, als „postsynaptisches Neuron“ in Bezug auf diese Instanz der Synapse 2708 bezeichnet werden. Da eine Instanz des Neurons 2702 Eingaben von einer oder mehreren Instanzen der Synapse 2708 empfangen kann und auch Ausgaben über eine oder mehrere Instanzen der Synapse 2708 übertragen kann, kann in mindestens einer Ausführungsform eine einzelne Instanz des Neurons 2702 daher sowohl ein „präsynaptisches Neuron“ als auch ein „postsynaptisches Neuron“ in Bezug auf verschiedene Instanzen der Synapsen 2708 sein.
  • In mindestens einer Ausführungsform können die Neuronen 2702 in eine oder mehrere Schichten organisiert sein. In mindestens einer Ausführungsform kann jede Instanz des Neurons 2702 einen Neuronenausgang 2706 aufweisen, der sich durch eine oder mehrere Synapsen 2708 zu einem oder mehreren Neuroneneingängen 2704 auffächern kann. In mindestens einer Ausführungsform können die Neuronenausgänge 2706 der Neuronen 2702 in einer ersten Schicht 2710 mit den Neuroneneingängen 2704 der Neuronen 2702 in einer zweiten Schicht 2712 verbunden sein. In mindestens einer Ausführungsform kann die Schicht 2710 als „vorwärtsgekoppelte Schicht“ bezeichnet werden. In mindestens einer Ausführungsform kann sich jede Instanz des Neurons 2702 in einer Instanz der ersten Schicht 2710 zu jeder Instanz des Neurons 2702 in der zweiten Schicht 2712 auffächern. In mindestens einer Ausführungsform kann die erste Schicht 2710 als „vollständig verbundene vorwärtsgekoppelte Schicht“ bezeichnet werden. In mindestens einer Ausführungsform kann sich jede Instanz des Neurons 2702 in einer Instanz der zweiten Schicht 2712 zu weniger als allen Instanzen des Neurons 2702 in einer dritten Schicht 2714 auffächern. In mindestens einer Ausführungsform kann die zweite Schicht 2712 als „spärlich verbundene vorwärtsgekoppelte Schicht“ bezeichnet werden. In mindestens einer Ausführungsform können sich die Neuronen 2702 in der zweiten Schicht 2712 zu den Neuronen 2702 in mehreren anderen Schichten auffächern, einschließlich zu den Neuronen 2702, die sich ebenfalls in der zweiten Schicht 2712 befinden. In mindestens einer Ausführungsform kann die zweite Schicht 2712 als „rekurrente Schicht“ bezeichnet werden. In mindestens einer Ausführungsform kann der neuromorphe Prozessor 2700 ohne Einschränkung eine beliebige geeignete Kombination von rekurrenten Schichten und vorwärtsgekoppelten Schichten beinhalten, einschließlich ohne Einschränkung sowohl spärlich verbundener vorwärtsgekoppelter Schichten als auch vollständig verbundener vorwärtsgekoppelter Schichten.
  • In mindestens einer Ausführungsform kann der neuromorphe Prozessor 2700 ohne Einschränkung eine rekonfigurierbare Zusammenschaltungsarchitektur oder dedizierte fest verdrahtete Zusammenschaltungen beinhalten, um die Synapse 2708 mit den Neuronen 2702 zu verbinden. In mindestens einer Ausführungsform kann der neuromorphe Prozessor 2700 ohne Einschränkung Schaltung oder Logik beinhalten, die es ermöglicht, Synapsen je nach Bedarf auf Grundlage der Topologie des neuronalen Netzes und des Neuronen-Fan-In/-Out unterschiedlichen Neuronen 2702 zuzuweisen. Zum Beispiel können in mindestens einer Ausführungsform die Synapsen 2708 mit den Neuronen 2702 unter Verwendung einer Zusammenschaltungsstruktur, wie etwa eines Netzes auf einem Chip, oder mit dedizierten Verbindungen verbunden sein. In mindestens einer Ausführungsform können die Synapsenverbindungen und deren Komponenten unter Verwendung von Schaltungsanordnungen oder Logik implementiert sein.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 28 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet das System 2800 einen oder mehrere Prozessoren 2802 und einen oder mehrere Grafikprozessoren 2808 und es kann ein Einzelprozessor-Desktopsystem, ein Multiprozessor-Arbeitsstationssystem oder ein Serversystem sein, das eine große Anzahl von Prozessoren 2802 oder Prozessorkernen 2807 aufweist. In mindestens einer Ausführungsform ist das System 2800 eine Verarbeitungsplattform, die in eine integrierte Schaltung als System auf einem Chip (SoC) zur Verwendung in mobilen, tragbaren oder eingebetteten Vorrichtungen integriert ist.
  • In mindestens einer Ausführungsform kann das System 2800 eine serverbasierte Spieleplattform, eine Spielekonsole, einschließlich einer Spiele- und Medienkonsole, eine mobile Spielekonsole, eine tragbare Spielekonsole oder eine Online-Spielekonsole beinhalten oder in diese integriert sein. In mindestens einer Ausführungsform ist das System 2800 ein Mobiltelefon, ein Smartphone, eine Tablet-Rechenvorrichtung oder eine mobile Internet-Vorrichtung. In mindestens einer Ausführungsform kann das Verarbeitungssystem 2800 auch eine tragbare Vorrichtung beinhalten, mit dieser gekoppelt oder in diese integriert sein, wie etwa eine Smartwatch-Wearable-Vorrichtung, eine Smart-Eyewear-Vorrichtung, eine Augmented-Reality-Vorrichtung oder eine Virtual-Reality-Vorrichtung. In mindestens einer Ausführungsform ist das Verarbeitungssystem 2800 eine Fernseh- oder Set-Top-Box-Vorrichtung, die einen oder mehrere Prozessoren 2802 und eine grafische Schnittstelle aufweist, die durch einen oder mehrere Grafikprozessoren 2808 erzeugt wird.
  • In mindestens einer Ausführungsform beinhalten ein oder mehrere Prozessoren 2802 jeweils einen oder mehrere Prozessorkerne 2807 zum Verarbeiten von Anweisungen, die bei ihrer Ausführung Operationen für System- und Benutzer-Software durchführen. In mindestens einer Ausführungsform ist jeder von einem oder mehreren Prozessorkernen 2807 so konfiguriert, dass er eine spezifische Anweisungssequenz 2809 verarbeitet. In mindestens einer Ausführungsform kann die Anweisungssequenz 2809 Complex Instruction Set Computing (CISC), Reduced Instruction Set Computing (RISC) oder Rechnen über ein Very Long Instruction Word (VLIW) ermöglichen. In mindestens einer Ausführungsform können die Prozessorkerne 2807 jeweils eine andere Anweisungssequenz 2809 verarbeiten, die Anweisungen beinhalten kann, um die Emulation anderer Anweisungssequenzen zu erleichtern. In mindestens einer Ausführungsform kann der Prozessorkern 2807 auch andere Verarbeitungsvorrichtungen beinhalten, wie etwa einen digitalen Signalprozessor (DSP).
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 2802 einen Cache-Speicher 2804. In mindestens einer Ausführungsform kann der Prozessor 2802 einen einzelnen internen Cache oder mehrere Levels von internem Cache aufweisen. In mindestens einer Ausführungsform wird der Cache-Speicher von verschiedenen Komponenten des Prozessors 2802 gemeinsam genutzt. In mindestens einer Ausführungsform verwendet der Prozessor 2802 auch einen externen Cache (z. B. einen Level-3-(L3-)Cache oder Last-Level-Cache (LLC)) (nicht gezeigt), der unter Verwendung bekannter Cache-Kohärenztechniken von den Prozessorkernen 2807 gemeinsam genutzt werden kann. In mindestens einer Ausführungsform ist in dem Prozessor 2802 zusätzlich eine Registerbank 2806 enthalten, die unterschiedliche Typen von Registern zum Speichern unterschiedlicher Datentypen beinhalten kann (z. B. Integerregister, Gleitkommaregister, Statusregister und ein Anweisungszeigerregister). In mindestens einer Ausführungsform kann die Registerbank 2806 Universalregister oder andere Register beinhalten.
  • In mindestens einer Ausführungsform sind ein oder mehrere Prozessor(en) 2802 mit einem oder mehreren Schnittstellenbus(sen) 2810 gekoppelt, um Kommunikationssignale, wie etwa Adress-, Daten- oder Steuersignale, zwischen dem Prozessor 2802 und anderen Komponenten in dem System 2800 zu übertragen. In mindestens einer Ausführungsform kann der Schnittstellenbus 2810 ein Prozessorbus sein, wie etwa eine Version eines Direct-Media-Interface-(DMI-)Busses. In mindestens einer Ausführungsform ist der Schnittstellenbus 2810 nicht auf einen DMI-Bus beschränkt, sondern kann einen oder mehrere Peripheral-Component-Interconnect-Busse (z. B. PCI, PCI Express), Speicherbusse oder andere Typen von Schnittstellenbussen beinhalten. In mindestens einer Ausführungsform beinhalten die Prozessor(en) 2802 eine integrierte Speichersteuerung 2816 und einen Plattformsteuerungs-Hub 2830. In mindestens einer Ausführungsform ermöglicht die Speichersteuerung 2816 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 2800, während der Plattformsteuerungs-Hub (platform controller hub - PCH) 2830 Verbindungen mit E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt.
  • In mindestens einer Ausführungsform kann eine Speichervorrichtung 2820 eine Vorrichtung mit dynamischem Direktzugriffsspeicher (DRAM), eine Vorrichtung mit statischem Direktzugriffsspeicher (SRAM), eine Flash-Speichervorrichtung, eine Phasenwechsel-Speichervorrichtung oder eine andere Speichervorrichtung sein, die eine geeignete Rechenleistung aufweist, um als Prozessspeicher zu dienen. In mindestens einer Ausführungsform kann die Speichervorrichtung 2820 als Systemspeicher für das System 2800 arbeiten, um Daten 2822 und Anweisungen 2821 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 2802 eine Anwendung oder einen Prozess ausführen. In mindestens einer Ausführungsform ist die Speichersteuerung 2816 zudem an einen optionalen externen Grafikprozessor 2812 gekoppelt, der mit einem oder mehreren Grafikprozessoren 2808 in den Prozessoren 2802 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einer Ausführungsform kann eine Anzeigevorrichtung 2811 mit den Prozessor(en) 2802 verbunden sein. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 2811 eine oder mehrere von einer internen Anzeigevorrichtung, wie in einer mobilen elektronischen Vorrichtung oder einer Laptop-Vorrichtung, oder einer externen Anzeigevorrichtung beinhalten, die über eine Anzeigeschnittstelle (z. B. DisplayPort usw.) angeschlossen ist. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 2811 eine am Kopf befestigte Anzeige (head mounted display - HMD) beinhalten, wie etwa eine stereoskopische Anzeigevorrichtung zur Verwendung bei Virtual-Reality-(VR-)Anwendungen oder Augmented-Reality-(AR-)Anwendungen.
  • In mindestens einer Ausführungsform ermöglicht der Plattformsteuerungs-Hub 2830, dass Peripheriegeräte mit der Speichervorrichtung 2820 und dem Prozessor 2802 über einen Hochgeschwindigkeits-E/A-Bus verbunden werden. In mindestens einer Ausführungsform beinhalten die E/A-Peripheriegeräte eine Audiosteuerung 2846, eine Netzsteuerung 2834, eine Firmware-Schnittstelle 2828, einen drahtlosen Sendeempfänger 2826, Berührungssensoren 2825 und eine Datenspeichervorrichtung 2824 (z. B. Festplattenlaufwerk, Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeichervorrichtung 2824 über eine Speicherschnittstelle (z. B. SATA) oder über einen Peripheriebus, wie etwa einen Peripheral-Component-Interconnect-Bus (z. B. PCI, PCI Express), verbunden sein. In mindestens einer Ausführungsform können die Berührungssensoren 2825 Touchscreen-Sensoren, Drucksensoren oder Fingerabdrucksensoren beinhalten. In mindestens einer Ausführungsform kann der drahtlose Sendeempfänger 2826 ein Wi-Fi-Sendeempfänger, ein Bluetooth-Sendeempfänger oder ein Sendeempfänger für ein mobiles Netz, wie etwa ein 3G-, 4G- oder Long-Term-Evolution-(LTE-)Sendeempfänger sein. In mindestens einer Ausführungsform ermöglicht die Firmware-Schnittstelle 2828 die Kommunikation mit der System-Firmware und kann zum Beispiel eine Unified Extensible Firmware Interface (UEFI) sein. In mindestens einer Ausführungsform kann die Netzsteuerung 2834 eine Netzverbindung zu einem drahtgebundenen Netz ermöglichen. In mindestens einer Ausführungsform ist eine Netzsteuerung mit hoher Rechenleistung (nicht gezeigt) mit dem Schnittstellenbus 2810 gekoppelt. In mindestens einer Ausführungsform ist die Audiosteuerung 2846 eine Mehrkanal-High-Definition-Audiosteuerung. In mindestens einer Ausführungsform beinhaltet das System 2800 eine optionale ältere E/A-Steuerung 2840 zum Koppeln von älteren Vorrichtungen (z. B. Personal System 2 (PS/2)) an das System 2800. In mindestens einer Ausführungsform kann der Plattformsteuerungs-Hub 2830 auch mit einer oder mehreren Universal-Serial-Bus-(USB-)Steuerungen 2842 verbunden sein, die mit Eingabevorrichtungen, wie etwa Kombinationen aus Tastatur und Maus 2843, einer Kamera 2844 oder anderen USB-Eingabevorrichtungen, verbunden sind.
  • In mindestens einer Ausführungsform kann eine Instanz der Speichersteuerung 2816 und des Plattformsteuerungs-Hubs 2830 in einen diskreten externen Grafikprozessor, wie etwa den externen Grafikprozessor 2812, integriert sein. In mindestens einer Ausführungsform können der Plattformsteuerungs-Hub 2830 und/oder die Speichersteuerung 2816 extern zu einem oder mehreren Prozessor(en) 2802 sein. Zum Beispiel kann das System 2800 in mindestens einer Ausführungsform eine externe Speichersteuerung 2816 und einen Plattformsteuerungs-Hub 2830 beinhalten, der als Speichersteuerungs-Hub und Peripheriesteuerungs-Hub innerhalb eines Systemchipsatzes konfiguriert sein kann, der mit den Prozessor(en) 2802 in Kommunikation steht.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 915 in den Grafikprozessor 2800 einbezogen sein. Zum Beispiel können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der in einer 3D-Pipeline verkörperten ALUs verwenden. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 9A oder 9B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in chipinternem oder chipexternem Speicher und/oder in Registern (gezeigt oder nicht gezeigt) gespeichert werden, die ALUs des Grafikprozessors 2800 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 29 ist ein Blockdiagramm eines Prozessors 2900, der einen oder mehrere Prozessorkerne 2902A-2902N, eine integrierte Speichersteuerung 2914 und einen integrierten Grafikprozessor 2908 aufweist, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozessor 2900 zusätzliche Kerne bis einschließlich des zusätzlichen Kerns 2902N beinhalten, die durch Kästen mit gestrichelten Linien dargestellt sind. In mindestens einer Ausführungsform beinhaltet jeder der Prozessorkerne 2902A-2902N eine oder mehrere interne Cache-Einheiten 2904A-2904N. In mindestens einer Ausführungsform weist jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte Cache-Einheiten 2906 auf.
  • In mindestens einer Ausführungsform stellen die internen Cache-Einheiten 2904A-2904N und die gemeinsam genutzten Cache-Einheiten 2906 eine Cache-Speicherhierarchie innerhalb des Prozessors 2900 dar. In mindestens einer Ausführungsform können die Cache-Speichereinheiten 2904A-2904N mindestens ein Level von Anweisungs- und Daten-Cache innerhalb jedes Prozessorkerns und ein oder mehrere Levels von gemeinsam genutztem Cache mittleren Levels, wie etwa ein Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Cache-Levels, beinhalten, wobei ein höchstes Cache-Level vor dem externen Speicher als LLC klassifiziert ist. In mindestens einer Ausführungsform hält die Cache-Kohärenzlogik die Kohärenz zwischen verschiedenen Cache-Einheiten 2906 und 2904A-2904N aufrecht.
  • In mindestens einer Ausführungsform kann der Prozessor 2900 auch einen Satz von einer oder mehreren Bussteuerungseinheiten 2916 und einen Systemagentenkern 2910 beinhalten. In mindestens einer Ausführungsform verwalten Bussteuerungseinheiten 2916 einen Satz von Peripheriebussen, wie etwa einen oder mehrere PCI- oder PCI-Express-Busse. In mindestens einer Ausführungsform stellt der Systemagentenkern 2910 eine Verwaltungsfunktionalität für verschiedene Prozessorkomponenten bereit. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 2910 eine oder mehrere integrierte Speichersteuerungen 2914, um den Zugriff auf verschiedene externe Speichervorrichtungen (nicht gezeigt) zu verwalten.
  • In mindestens einer Ausführungsform beinhalten einer oder mehrere der Prozessorkerne 2902A-2902N Unterstützung für simultanes Multi-Threading. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 2910 Komponenten zum Koordinieren und Betreiben der Kerne 2902A-2902N während der Multi-Thread-Verarbeitung. In mindestens einer Ausführungsform kann der Systemagentenkern 2910 zusätzlich eine Leistungssteuereinheit (power control unit - PCU) beinhalten, die Logik und Komponenten zum Regulieren eines oder mehrerer Leistungszustände der Prozessorkerne 2902A-2902N und des Grafikprozessors 2908 beinhaltet.
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 2900 zusätzlich den Grafikprozessor 2908 zum Ausführen von Grafikverarbeitungsoperationen. In mindestens einer Ausführungsform ist der Grafikprozessor 2908 mit gemeinsam genutzten Cache-Einheiten 2906 und dem Systemagentenkern 2910 gekoppelt, der eine oder mehrere integrierte Speichersteuerungen 2914 beinhaltet. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 2910 zudem eine Anzeigesteuerung 2911, um die Grafikprozessorausgabe zu einer oder mehreren gekoppelten Anzeigen zu treiben. In mindestens einer Ausführungsform kann die Anzeigesteuerung 2911 auch ein separates Modul sein, das über mindestens eine Zusammenschaltung mit dem Grafikprozessor 2908 gekoppelt ist, oder sie kann in den Grafikprozessor 2908 integriert sein.
  • In mindestens einer Ausführungsform wird eine ringbasierte Zusammenschaltungseinheit 2912 zum Koppeln interner Komponenten des Prozessors 2900 verwendet. In mindestens einer Ausführungsform kann eine alternative Zusammenschaltungseinheit verwendet werden, wie z. B. eine Punkt-zu-Punkt-Zusammenschaltung, eine geschaltete Zusammenschaltung oder andere Techniken. In mindestens einer Ausführungsform ist der Grafikprozessor 2908 über eine E/A-Verknüpfung 2913 mit der Ringzusammenschaltung 2912 gekoppelt.
  • In mindestens einer Ausführungsform stellt die E/A-Verknüpfung 2913 mindestens eine von mehreren Sorten von E/A-Zusammenschaltungen dar, einschließlich einer gehäuseinternen E/A-Zusammenschaltung, die Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Speichermodul 2918 mit hoher Rechenleistung, wie etwa einem eDRAM-Modul, erleichtert. In mindestens einer Ausführungsform verwenden jeder der Prozessorkerne 2902A-2902N und der Grafikprozessor 2908 ein eingebettetes Speichermodul 2918 als gemeinsam genutzten Last-Level-Cache.
  • In mindestens einer Ausführungsform sind die Prozessorkerne 2902A-2902N homogene Kerne, die eine gemeinsame Anweisungssatzarchitektur ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 2902A-2902N bezüglich der Anweisungssatzarchitektur (instruction set architecture - ISA) heterogen, wobei einer oder mehrere der Prozessorkerne 2902A-2902N einen gemeinsamen Anweisungssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 2902A-2902N eine Teilmenge eines gemeinsamen Anweisungssatzes oder eines anderen Anweisungssatzes ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 2902A-2902N bezüglich der Mikroarchitektur heterogen, wobei ein oder mehrere Kerne, die einen relativ betrachtet höheren Leistungsverbrauch aufweisen, mit einem oder mehreren Kernen, die einen niedrigeren Leistungsverbrauch aufweisen, gekoppelt sind. In mindestens einer Ausführungsform kann der Prozessor 2900 auf einem oder mehreren Chips oder als SoC-integrierte Schaltung implementiert sein.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 915 in den Grafikprozessor 2910 einbezogen sein. Zum Beispiel können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der in einer 3D-Pipeline verkörperten ALUs, Grafikkern(e) 2902, gemeinsam genutzte Logik oder andere Logik in 29 verwenden. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 9A oder 9B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in chipinternem oder chipexternem Speicher und/oder in Registern (gezeigt oder nicht gezeigt) gespeichert werden, die ALUs des Prozessors 2900 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 30 ist ein Blockdiagramm eines Grafikprozessors 3000, bei dem es sich um eine diskrete Grafikverarbeitungseinheit oder um einen mit einer Vielzahl von Verarbeitungskernen integrierten Grafikprozessor handeln kann. In mindestens einer Ausführungsform kommuniziert der Grafikprozessor 3000 über eine auf Speicher abgebildete E/A-Schnittstelle mit Registern auf dem Grafikprozessor 3000 und mit in Speicher abgelegten Befehlen. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3000 eine Speicherschnittstelle 3014 zum Zugreifen auf Speicher. In mindestens einer Ausführungsform ist die Speicherschnittstelle 3014 eine Schnittstelle zu lokalem Speicher, einem oder mehreren internen Caches, einem oder mehreren gemeinsam genutzten externen Caches und/oder zu Systemspeicher.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3000 zudem eine Anzeigesteuerung 3002, um Anzeigeausgabedaten zu einer Anzeigevorrichtung 3020 zu treiben. In mindestens einer Ausführungsform beinhaltet die Anzeigesteuerung 3002 Hardware für eine oder mehrere Überlagerungsebenen für die Anzeigevorrichtung 3020 und die Komposition mehrerer Schichten von Video- oder Benutzerschnittstellenelementen. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 3020 eine interne oder externe Anzeigevorrichtung sein. In mindestens einer Ausführungsform ist die Anzeigevorrichtung 3020 eine am Kopf befestigte Anzeigevorrichtung, wie etwa eine Virtual-Reality-(VR-)Anzeigevorrichtung oder eine Augmented-Reality-(AR-)Anzeigevorrichtung. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3000 eine Videocodec-Engine 3006 zum Codieren, Decodieren oder Transcodieren von Medien in, aus oder zwischen einem oder mehreren Mediencodierformaten, einschließlich, aber nicht beschränkt auf, Moving-Picture-Experts-Group-(MPEG-)Formate wie etwa MPEG-2, Advanced-Video-Coding-(AVC-)Formate wie etwa H.264/MPEG-4 AVC sowie Society of Motion Picture & Television Engineers (SMPTE) 421M/VC-1 und Joint-Photographic-Experts-Group-(JPEG-)Formate wie etwa JPEG und Motion JPEG (MJPEG).
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3000 eine Block-Image-Transfer-(BLIT-)Engine 3004, um zweidimensionale (2D) Rastereroperationen durchzuführen, einschließlich zum Beispiel Bit-Boundary Block Transfers. In mindestens einer Ausführungsform werden jedoch 2D-Grafikoperationen unter Verwendung einer oder mehreren Komponenten einer Grafikverarbeitungs-Engine (graphics processing engine - GPE) 3010 durchgeführt. In mindestens einer Ausführungsform ist die GPE 3010 eine Rechen-Engine zum Durchführen von Grafikoperationen, einschließlich dreidimensionaler (3D) Grafikoperationen und Medienoperationen.
  • In mindestens einer Ausführungsform beinhaltet die GPE 3010 eine 3D-Pipeline 3012 zum Durchführen von 3D-Operationen, wie etwa Rendern dreidimensionaler Bilder und Szenen unter Verwendung von Verarbeitungsfunktionen, die an 3D-Primitivformen (z. B. Rechteck, Dreieck usw.) wirken. In mindestens einer Ausführungsform beinhaltet die 3D-Pipeline 3012 programmierbare Elemente und Festfunktionselemente, die verschiedene Tasks durchführen und/oder Ausführungs-Threads für ein 3D-/Medienteilsystem 3015 erzeugen. Während die 3D-Pipeline 3012 zum Durchführen von Medienoperationen verwendet werden kann, beinhaltet die GPE 3010 in mindestens einer Ausführungsform auch eine Medienpipeline 3016, die zum Durchführen von Medienoperationen, wie etwa Videonachverarbeitung und Bildverbesserung, verwendet wird.
  • In mindestens einer Ausführungsform beinhaltet die Medienpipeline 3016 Festfunktions- oder programmierbare Logikeinheiten, um eine oder mehrere spezialisierte Medienoperationen durchzuführen, wie etwa Beschleunigung von Videodecodierung, Videoentschachtelung und Beschleunigung von Videocodierung anstelle oder im Auftrag der Videocodec-Engine 3006. In mindestens einer Ausführungsform beinhaltet die Medienpipeline 3016 zusätzlich eine Thread-Erzeugungseinheit, um Threads zum Ausführen auf dem 3D-/Medienteilsystem 3015 zu erzeugen. In mindestens einer Ausführungsform führen erzeugte Threads Berechnungen für Medienoperationen auf einer oder mehreren Grafikausführungseinheiten aus, die in dem 3D-/Medienteilsystem 3015 enthalten sind.
  • In mindestens einer Ausführungsform beinhaltet das 3D-/Medienteilsystem 3015 Logik zum Ausführen von Threads, die durch die 3D-Pipeline 3012 und die Medienpipeline 3016 erzeugt werden. In mindestens einer Ausführungsform senden die 3D-Pipeline 3012 und die Medienpipeline 3016 Thread-Ausführungsanforderungen an das 3D-/Medienteilsystem 3015, das Thread-Zuteilungslogik zum Vermitteln und Zuteilen verschiedener Anforderungen an verfügbare Thread-Ausführungsressourcen beinhaltet. In mindestens einer Ausführungsform beinhalten die Ausführungsressourcen ein Array von Grafikausführungseinheiten zum Verarbeiten von 3D- und Medien-Threads. In mindestens einer Ausführungsform beinhaltet das 3D-/Medienteilsystem 3015 einen oder mehrere interne Caches für Thread-Anweisungen und Daten. In mindestens einer Ausführungsform beinhaltet das Teilsystem 3015 auch gemeinsam genutzten Speicher, einschließlich Registern und adressierbaren Speichers, um Daten zwischen Threads gemeinsam zu nutzen und Ausgabedaten zu speichern.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 915 in den Grafikprozessor 3000 einbezogen sein. Zum Beispiel können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der in der 3D-Pipeline 3012 verkörperten ALUs verwenden. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 9A oder 9B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in chipinternem oder chipexternem Speicher und/oder in Registern (gezeigt oder nicht gezeigt) gespeichert werden, die ALUs des Grafikprozessors 3000 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 31 ist ein Blockdiagramm einer Grafikverarbeitungs-Engine 3110 eines Grafikprozessors gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist die Grafikverarbeitungs-Engine (GPE) 3110 eine Version der in 30 gezeigten GPE 3010. In mindestens einer Ausführungsform ist eine Medienpipeline 3116 optional und möglicherweise nicht explizit innerhalb der GPE 3110 enthalten. In mindestens einer Ausführungsform ist ein separater Medien- und/oder Bildprozessor an die GPE 3110 gekoppelt.
  • In mindestens einer Ausführungsform ist die GPE 3110 an einen Befehls-Streamer 3103 gekoppelt oder sie beinhaltet einen solchen, der einer 3D-Pipeline 3112 und/oder der Medienpipeline 3116 einen Befehlsstrom bereitstellt. In mindestens einer Ausführungsform ist der Befehls-Streamer 3103 an Speicher gekoppelt, bei dem es sich um Systemspeicher oder um einen oder mehrere von internem Cache-Speicher und gemeinsam genutztem Cache-Speicher handeln kann. In mindestens einer Ausführungsform empfängt der Befehls-Streamer 3103 Befehle aus Speicher und sendet Befehle an die 3D-Pipeline 3112 und/oder die Medienpipeline 3116. In mindestens einer Ausführungsform handelt es sich bei den Befehlen um Anweisungen, Primitive oder Mikrooperationen, die aus einem Ringpuffer abgerufen werden, der Befehle für die 3D-Pipeline 3112 und die Medienpipeline 3116 speichert. In mindestens einer Ausführungsform kann ein Ringpuffer zusätzlich Batch-Befehlspuffer beinhalten, die Batches von mehreren Befehlen speichern. In mindestens einer Ausführungsform können die Befehle für die 3D-Pipeline 3112 auch Bezugnahmen auf Daten beinhalten, die in Speicher gespeichert sind, wie etwa, aber nicht beschränkt auf, Vertex- und Geometriedaten für die 3D-Pipeline 3112 und/oder Bilddaten und Speicherobjekte für die Medienpipeline 3116. In mindestens einer Ausführungsform verarbeiten die 3D-Pipeline 3112 und die Medienpipeline 3116 Befehle und Daten, indem sie Operationen durchführen oder einen oder mehrere Ausführungs-Threads einem Grafikkernarray 3114 zuteilen. In mindestens einer Ausführungsform beinhaltet das Grafikkernarray 3114 einen oder mehrere Blöcke von Grafikkernen (z. B. Grafikkern(e) 3115A, Grafikkern(e) 3115B), wobei jeder Block einen oder mehrere Grafikkerne beinhaltet. In mindestens einer Ausführungsform beinhaltet jeder Grafikkern einen Satz von Grafikausführungsressourcen, der eine Universal- und eine grafikspezifische Ausführungslogik zum Durchführen von Grafik- und Rechenoperationen sowie Logik zur Texturverarbeitung mit fester Funktion und/oder zur Beschleunigung des maschinellen Lernens und der künstlichen Intelligenz, einschließlich der Inferenz- und/oder Trainingslogik 915 in 9A und 9B, beinhaltet.
  • In mindestens einer Ausführungsform beinhaltet die 3D-Pipeline 3112 Festfunktionslogik und programmierbare Logik, um ein oder mehrere Shader-Programme, wie etwa Vertex-Shader, Geometrie-Shader, Pixel-Shader, Fragment-Shader, Rechen-Shader oder andere Shader-Programme, zu verarbeiten, indem Anweisungen verarbeitet und Ausführungs-Threads dem Grafikkernarray 3114 zugeteilt werden. In mindestens einer Ausführungsform stellt das Grafikkernarray 3114 einen einheitlichen Block von Ausführungsressourcen zur Verwendung beim Verarbeiten von Shader-Programmen bereit. In mindestens einer Ausführungsform beinhaltet eine Mehrzweck-Ausführungslogik (z. B. Ausführungseinheiten) innerhalb der Grafikkern(e) 3115A-3115B des Grafikkernarrays 3114 Unterstützung für verschiedene 3D-API-Shader-Sprachen und sie kann mehrere simultane Ausführungs-Threads ausführen, die mit mehreren Shadern assoziiert sind.
  • In mindestens einer Ausführungsform beinhaltet das Grafikkernarray 3114 auch Ausführungslogik zum Durchführen von Medienfunktionen, wie etwa Video- und/oder Bildverarbeitung. In mindestens einer Ausführungsform beinhalten die Ausführungseinheiten zusätzlich Universallogik, die so programmiert werden kann, dass sie zusätzlich zu Grafikverarbeitungsoperationen parallele Universalrechenoperationen durchführt.
  • In mindestens einer Ausführungsform können Ausgabedaten, die durch Threads erzeugt werden, die auf dem Grafikkernarray 3114 ausgeführt werden, Daten in einem einheitlichen Rückgabepuffer (unified return buffer - URB) 3118 an Speicher ausgeben. In mindestens einer Ausführungsform kann der URB 3118 Daten für mehrere Threads speichern. In mindestens einer Ausführungsform kann der URB 3118 verwendet werden, um Daten zwischen unterschiedlichen Threads zu senden, die auf dem Grafikkernarray 3114 ausgeführt werden. In mindestens einer Ausführungsform kann der URB 3118 zusätzlich für die Synchronisation zwischen Threads auf dem Grafikkernarray 3114 und der Festfunktionslogik innerhalb der gemeinsam genutzten Funktionslogik 3120 verwendet werden.
  • In mindestens einer Ausführungsform ist das Grafikkernarray 3114 skalierbar, sodass das Grafikkernarray 3114 eine variable Anzahl von Grafikkernen beinhaltet, die jeweils eine variable Anzahl von Ausführungseinheiten auf Grundlage eines angestrebten Leistungs- und Rechenleistungslevels der GPE 3110 aufweisen. In mindestens einer Ausführungsform sind die Ausführungsressourcen dynamisch skalierbar, sodass die Ausführungsressourcen nach Bedarf aktiviert oder deaktiviert werden können.
  • In mindestens einer Ausführungsform ist das Grafikkernarray 3114 an die gemeinsam genutzte Funktionslogik 3120 gekoppelt, die mehrere Ressourcen beinhaltet, die von den Grafikkernen in dem Grafikkernarray 3114 gemeinsam genutzt werden. In mindestens einer Ausführungsform sind die gemeinsam genutzten Funktionen, die durch die gemeinsam genutzte Funktionslogik 3120 durchgeführt werden, in Hardware-Logikeinheiten verkörpert, die eine spezialisierte Ergänzungsfunktionalität für das Grafikkernarray 3114 bereitstellen. In mindestens einer Ausführungsform beinhaltet die gemeinsam genutzte Funktionslogik 3120 eine Abtastereinheit 3121, eine Mathematikeinheit 3122 und Logik 3123 zur Zwischen-Thread-Kommunikation (inter-thread communication - ITC), ist aber nicht darauf beschränkt. In mindestens einer Ausführungsform sind ein oder mehrere Cache(s) 3125 in der gemeinsam genutzten Funktionslogik 3120 enthalten oder an diese gekoppelt.
  • In mindestens einer Ausführungsform wird eine gemeinsam genutzte Funktion verwendet, falls die Nachfrage nach einer spezialisierten Funktion für die Aufnahme in das Grafikkernarray 3114 nicht ausreicht. In mindestens einer Ausführungsform wird eine einzelne Instanziierung einer spezialisierten Funktion in der gemeinsam genutzten Funktionslogik 3120 verwendet und von anderen Ausführungsressourcen innerhalb des Grafikkernarrays 3114 gemeinsam genutzt. In mindestens einer Ausführungsform können spezifische gemeinsam genutzte Funktionen innerhalb der gemeinsam genutzten Funktionslogik 3120, die durch das Grafikkernarray 3114 intensiv genutzt werden, in der gemeinsam genutzten Funktionslogik 3416 innerhalb des Grafikkernarrays 3114 enthalten sein. In mindestens einer Ausführungsform kann die gemeinsam genutzte Funktionslogik 3416 innerhalb des Grafikkernarrays 3114 einen Teil der oder die gesamte Logik innerhalb der gemeinsam genutzten Funktionslogik 3120 beinhalten. In mindestens einer Ausführungsform können alle Logikelemente innerhalb der gemeinsam genutzten Funktionslogik 3120 innerhalb der gemeinsam genutzten Funktionslogik 3126 des Grafikkernarrays 3114 dupliziert werden. In mindestens einer Ausführungsform ist die gemeinsam genutzte Funktionslogik 3120 zugunsten der gemeinsam genutzten Funktionslogik 3126 innerhalb des Grafikkernarrays 3114 ausgeschlossen.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 915 in den Grafikprozessor 3110 einbezogen sein. Zum Beispiel können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der in der 3D-Pipeline 3112 verkörperten ALUs, Grafikkern(e) 3115, gemeinsam genutzte Logik 3126, gemeinsam genutzte Logik 3120 oder andere Logik in 31 verwenden. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 9A oder 9B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in chipinternem oder chipexternem Speicher und/oder in Registern (gezeigt oder nicht gezeigt) gespeichert werden, die ALUs des Grafikprozessors 3110 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 32 ist ein Blockdiagramm von Hardware-Logik eines Grafikprozessorkerns 3200 gemäß mindestens einer hierin beschriebenen Ausführungsform. In mindestens einer Ausführungsform ist der Grafikprozessorkern 3200 in einem Grafikkernarray enthalten. In mindestens einer Ausführungsform kann es sich bei dem Grafikprozessorkern 3200, mitunter als Kern-Slice bezeichnet, um einen oder mehrere Grafikkerne innerhalb eines modularen Grafikprozessors handeln. In mindestens einer Ausführungsform ist der Grafikprozessorkern 3200 beispielhaft für eine Grafikkern-Slice und ein Grafikprozessor, wie hierin beschrieben, kann auf Grundlage der angestrebten Leistungs- und Rechenleistungshüllkurven mehrere Grafikkern-Slices beinhalten. In mindestens einer Ausführungsform kann jeder Grafikkern 3200 einen Festfunktionsblock 3230 beinhalten, der mit mehreren Teilkernen 3201A-3201 F gekoppelt ist, die auch als Teil-Slices bezeichnet werden und modulare Blöcke von Universal- und Festfunktionslogik beinhalten.
  • In mindestens einer Ausführungsform beinhaltet der Festfunktionsblock 3230 eine Geometrie- und Festfunktionspipeline 3236, die von allen Teilkernen in dem Grafikprozessor 3200 gemeinsam genutzt werden kann, zum Beispiel in Implementationen mit Grafikprozessoren mit niedrigerer Rechenleistung und/oder niedrigerer Leistung. In mindestens einer Ausführungsform beinhaltet die Geometrie- und Festfunktionspipeline 3236 eine 3D-Festfunktionspipeline, eine Video-Frontend-Einheit, einen Thread-Erzeuger und Thread-Zuteiler sowie einen Verwalter für einheitlichen Rückgabepuffer, der einheitlichen Rückgabepuffer verwaltet.
  • In mindestens einer Ausführungsform beinhaltet der Festfunktionsblock 3230 auch eine Grafik-SoC-Schnittstelle 3237, einen Grafik-Mikrocontroller 3238 und eine Medienpipeline 3239. In mindestens einer Ausführungsform stellt die Grafik-SoC-Schnittstelle 3237 eine Schnittstelle zwischen dem Grafikkern 3200 und anderen Prozessorkernen innerhalb einer integrierten Schaltung als System auf einem Chip bereit. In mindestens einer Ausführungsform ist der Grafik-Mikrocontroller 3238 ein programmierbarer Teilprozessor, der so konfiguriert werden kann, dass er verschiedene Funktionen des Grafikprozessors 3200 verwaltet, einschließlich Thread-Zuteilung, - Planung und -Präemption. In mindestens einer Ausführungsform beinhaltet die Medienpipeline 3239 Logik zum Erleichtern der Decodierung, Codierung, Vorverarbeitung und/oder Nachverarbeitung von Multimedia-Daten, einschließlich Bild- und Videodaten. In mindestens einer Ausführungsform implementiert die Medienpipeline 3239 Medienoperationen über Anforderungen an Rechen- oder Abtastlogik innerhalb der Teilkerne 3201A-3201 F.
  • In mindestens einer Ausführungsform ermöglicht die SoC-Schnittstelle 3237 es dem Grafikkern 3200, mit Universal-Anwendungsprozessorkernen (z. B. CPUs) und/oder anderen Komponenten innerhalb eines SoC zu kommunizieren, einschließlich Speicherhierarchieelementen, wie etwa einem gemeinsam genutzten Last-Level-Cache-Speicher, System-RAM und/oder eingebettetem chipinternem oder gehäuseinternem DRAM. In mindestens einer Ausführungsform kann die SoC-Schnittstelle 3237 auch Kommunikation mit Festfunktionsvorrichtungen innerhalb eines SoC ermöglichen, wie etwa Kamera-Bildgebungspipelines, und sie ermöglicht die Verwendung von globalem atomarem Speicher und/oder implementiert diesen, der von dem Grafikkern 3200 und den CPUs innerhalb eines SoCs gemeinsam genutzt werden kann. In mindestens einer Ausführungsform kann die Grafik-SoC-Schnittstelle 3237 auch Leistungsverwaltungssteuerelemente für den Grafikprozessorkern 3200 implementieren und eine Schnittstelle zwischen einer Taktdomäne des Grafikprozessorkerns 3200 und anderen Taktdomänen innerhalb eines SoC ermöglichen. In mindestens einer Ausführungsform ermöglicht die SoC-Schnittstelle 3237 den Empfang von Befehlspuffern von einem Befehls-Streamer und einem globalen Thread-Zuteiler, die so konfiguriert sind, dass sie jedem von einem oder mehreren Grafikkernen innerhalb eines Grafikprozessors Befehle und Anweisungen bereitstellen. In mindestens einer Ausführungsform können Befehle und Anweisungen der Medienpipeline 3239 zugeteilt werden, wenn Medienoperationen durchgeführt werden sollen, oder einer Geometrie- und Festfunktionspipeline (z. B. der Geometrie- und Festfunktionspipeline 3236 und/oder der Geometrie- und Festfunktionspipeline 3214), wenn Grafikverarbeitungsoperationen durchgeführt werden sollen.
  • In mindestens einer Ausführungsform kann der Grafik-Mikrocontroller 3238 so konfiguriert sein, dass er verschiedene Planungs- und Verwaltungs-Tasks für den Grafikkern 3200 durchführt. In mindestens einer Ausführungsform kann der Grafik-Mikrocontroller 3238 die Planung der Grafik- und/oder Rechenarbeitslast auf verschiedenen Grafikparallel-Engines innerhalb der Arrays 3202A-3202F, 3204A-3204F der Ausführungseinheiten (execution unit - EU) innerhalb der Teilkerne 3201A-3201 F durchführen. In mindestens einer Ausführungsform kann Host-Software, die auf einem CPU-Kern eines SoC, einschließlich des Grafikkerns 3200, ausgeführt wird, Arbeitslasten an einen von mehreren Grafikprozessorpfaden absenden, der eine Planungsoperation auf einer zweckmäßigen Grafik-Engine aufruft. In mindestens einer Ausführungsform umfassen die Planungsvorgänge das Bestimmen, welche Arbeitslast als Nächstes laufen soll, das Übermitteln einer Arbeitslast an einen Befehls-Streamer, das Vorwegnehmen vorhandener Arbeitslasten, die auf einer Engine laufen, das Überwachen des Fortschritts einer Arbeitslast und das Benachrichtigen der Host-Software, wenn eine Arbeitslast abgeschlossen ist. In mindestens einer Ausführungsform kann der Grafik-Mikrocontroller 3238 auch Zustände mit niedriger Leistung oder inaktive Zustände für den Grafikkern 3200 erleichtern, wobei dem Grafikkern 3200 eine Fähigkeit bereitgestellt wird, Register innerhalb des Grafikkerns 3200 über Zustandsübergänge mit niedriger Leistung unabhängig von einem Betriebssystem und/oder einer Grafiktreiber-Software auf einem System zu sichern und wiederherzustellen.
  • In mindestens einer Ausführungsform kann der Grafikkern 3200 mehr oder weniger als die veranschaulichten Teilkerne 3201A-3201F aufweisen, bis zu N modulare Teilkerne. Für jeden Satz von N Teilkernen kann der Grafikkern 3200 in mindestens einer Ausführungsform auch gemeinsam genutzte Funktionslogik 3210, gemeinsam genutzten und/oder Cache-Speicher 3212, eine Geometrie-/Festfunktionspipeline 3214 sowie zusätzliche Festfunktionslogik 3216 zum Beschleunigen verschiedener Grafik- und Rechenverarbeitungsoperationen beinhalten. In mindestens einer Ausführungsform kann die gemeinsam genutzte Funktionslogik 3210 Logikeinheiten (z. B. Abtaster-, Mathematik- und/oder Zwischen-Thread-Kommunikationslogik) beinhalten, die von N Teilkernen innerhalb des Grafikkerns 3200 gemeinsam genutzt werden können. In mindestens einer Ausführungsform kann der gemeinsam genutzte und/oder Cache-Speicher 3212 Last-Level-Cache für N Teilkerne 3201A-3201 F innerhalb des Grafikkerns 3200 sein und auch als gemeinsam genutzter Speicher dienen, auf den mehrere Teilkerne zugreifen können. In mindestens einer Ausführungsform kann die Geometrie-/Festfunktionspipeline 3214 anstelle der Geometrie-/Festfunktionspipeline 3236 innerhalb des Festfunktionsblocks 3230 enthalten sein und ähnliche Logikeinheiten beinhalten.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkern 3200 zusätzliche Festfunktionslogik 3216, die verschiedene Festfunktionsbeschleunigungslogik zur Verwendung durch den Grafikkern 3200 beinhalten kann. In mindestens einer Ausführungsform beinhaltet die zusätzliche Festfunktionslogik 3216 eine zusätzliche Geometriepipeline für die Verwendung beim Shading von nur der Position. Beim Shading von nur der Position existieren mindestens zwei Geometriepipelines, wohingegen eine vollständige Geometriepipeline innerhalb der Geometrie- und Festfunktionspipelines 3214, 3236 und eine Culling-Pipeline, die eine zusätzliche Geometriepipeline ist, die innerhalb der zusätzlichen Festfunktionslogik 3216 enthalten sein kann. In mindestens einer Ausführungsform ist eine Culling-Pipeline eine abgespeckte Version einer vollständigen Geometriepipeline. In mindestens einer Ausführungsform können eine vollständige Pipeline und eine Culling-Pipeline verschiedene Instanzen einer Anwendung ausführen, wobei jede Instanz einen eigenen Kontext hat. In mindestens einer Ausführungsform kann eine Schattierung von lediglich der Position lange Ausleseläufe von verworfenen Dreiecken verbergen, wodurch die Schattierung in einigen Fällen früher abgeschlossen werden kann. Zum Beispiel kann in mindestens einer Ausführungsform die Culling-Pipeline-Logik innerhalb der zusätzlichen Festfunktionslogik 3216 Positions-Shader parallel zu einer Hauptanwendung ausführen und sie erzeugt im Allgemeinen kritische Ergebnisse schneller als eine vollständige Pipeline, da eine Culling-Pipeline Positionsattribute von Vertices abruft und schattiert, ohne Rasterung und Rendering von Pixeln in einem Bildspeicher durchzuführen. In mindestens einer Ausführungsform kann eine Culling-Pipeline erzeugte kritische Ergebnisse verwenden, um Sichtbarkeitsinformationen für alle Dreiecke zu berechnen, ohne Rücksicht darauf, ob diese Dreiecke Culling unterzogen werden. In mindestens einer Ausführungsform kann eine vollständige Pipeline (die in diesem Fall als Wiederholungspipeline bezeichnet werden kann) Sichtbarkeitsinformationen verbrauchen, um Culling unterzogene Dreiecke zu überspringen, um nur sichtbare Dreiecke zu schattieren, die schließlich an eine Rasterungsphase übergeben werden.
  • In mindestens einer Ausführungsform kann die zusätzliche Festfunktionslogik 3216 auch Logik zur Beschleunigung des maschinellen Lernens wie etwa Festfunktions-Matrixmultiplikationslogik für Implementationen beinhalten, die Optimierungen für das Training oder das Inferenzieren des maschinellen Lernens beinhalten.
  • In mindestens einer Ausführungsform beinhaltet jeder Grafikteilkern 3201A-3201 F einen Satz von Ausführungsressourcen, die verwendet werden können, um Grafik-, Medien- und Rechenoperationen als Reaktion auf Anforderungen durch Grafikpipeline-, Medienpipeline- oder Shader-Programme durchzuführen. In mindestens einer Ausführungsform beinhalten die Grafikteilkerne 3201A-3201 F mehrere EU-Arrays 3202A-3202F, 3204A-3204F, Logik 3203A-3203F zur Thread-Zuteilung und Zwischen-Thread-Kommunikation (thread dispatch/inter-thread communication - TD/IC), einen 3D- (z. B. Textur-) Abtaster 3205A-3205F, einen Medienabtaster 3206A-3206F, einen Shader-Prozessor 3207A-3207F und gemeinsam genutzten lokalen Speicher (shared local memory- SLM) 3208A-3208F. In mindestens einer Ausführungsform beinhalten die EU-Arrays 3202A-3202F, 3204A-3204F jeweils mehrere Ausführungseinheiten, bei denen es sich um Universal-Grafikverarbeitungseinheiten handelt, die dazu in der Lage sind, Gleitkomma- und Integer-/Festkomma-Logikoperationen im Dienste einer Grafik-, Medien- oder Rechenoperation, einschließlich Grafik-, Medien- oder Rechen-Shader-Programmen, durchzuführen. In mindestens einer Ausführungsform führt die TD/IC-Logik 3203A-3203F lokale Thread-Zuteilungs- und Thread-Steueroperationen für Ausführungseinheiten innerhalb eines Teilkerns aus und sie erleichtert die Kommunikation zwischen Threads, die auf Ausführungseinheiten eines Teilkerns ausgeführt werden. In mindestens einer Ausführungsform können die 3D-Abtaster 3205A-3205F Textur- oder andere mit 3D-Grafik verwandte Daten in Speicher lesen. In mindestens einer Ausführungsform können die 3D-Abtaster Texturdaten auf Grundlage eines konfigurierten Abtastzustands und eines Texturformats, das mit einer gegebenen Textur assoziiert ist, unterschiedlich lesen. In mindestens einer Ausführungsform können die Medienabtaster 3206A-3206F ähnliche Leseoperationen auf Grundlage eines Typs und Formats, die mit den Mediendaten assoziiert sind, durchführen. In mindestens einer Ausführungsform kann jeder Grafikteilkern 3201A-3201F alternativ einen einheitlichen 3D-Abtaster und Medienabtaster beinhalten. In mindestens einer Ausführungsform können Threads, die auf Ausführungseinheiten innerhalb jedes der Teilkerne 3201A-3201 F ausgeführt werden, den gemeinsam genutzten lokalen Speicher 3208A-3208F innerhalb jedes Teilkerns verwenden, um es Threads, die innerhalb einer Thread-Gruppe ausgeführt werden, zu ermöglichen, unter Verwendung eines gemeinsamen Pools von chipinternem Speicher ausgeführt zu werden.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 915 in den Grafikprozessor 3210 einbezogen sein. Zum Beispiel können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der in einer 3D-Pipeline verkörperten ALUs, den Grafik-Mikrocontroller 3238, die Geometrie- und Festfunktionspipeline 3214 und 3236 oder andere Logik in 32 verwenden. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 9A oder 9B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in chipinternem oder chipexternem Speicher und/oder in Registern (gezeigt oder nicht gezeigt) gespeichert werden, die ALUs des Grafikprozessors 3200 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 33A-33B veranschaulichen Thread-Ausführungslogik 3300, die ein Array von Verarbeitungselementen eines Grafikprozessorkerns beinhaltet, gemäß mindestens einer Ausführungsform. 33A veranschaulicht mindestens eine Ausführungsform, in der die Thread-Ausführungslogik 3300 verwendet wird. 33B veranschaulicht beispielhafte interne Details einer Grafikausführungseinheit 3308 gemäß mindestens einer Ausführungsform.
  • Wie in 33A veranschaulicht, beinhaltet die Thread-Ausführungslogik 3300 in mindestens einer Ausführungsform einen Shader-Prozessor 3302, einen Thread-Zuteiler 3304, einen Anweisungs-Cache 3306, ein skalierbares Ausführungseinheitenarray einschließlich einer Vielzahl von Ausführungseinheiten 3307A-3307N und 3308A-3308N, einen Abtaster 3310, einen Daten-Cache 3312 und einen Datenport 3314. In mindestens einer Ausführungsform kann ein skalierbares Ausführungseinheitenarray dynamisch skalieren, indem eine oder mehrere Ausführungseinheiten (z. B. beliebige der Ausführungseinheiten 3308A-N oder 3307AN) zum Beispiel auf Grundlage von Rechenanforderungen einer Arbeitslast aktiviert oder deaktiviert werden. In mindestens einer Ausführungsform sind die skalierbaren Ausführungseinheiten über eine Zusammenschaltungsstruktur zusammengeschaltet, die mit jeder Ausführungseinheit verknüpft ist. In mindestens einer Ausführungsform beinhaltet die Thread-Ausführungslogik 3300 eine oder mehrere Verbindungen mit Speicher, wie etwa Systemspeicher oder Cache-Speicher, durch eines oder mehrere des Anweisungs-Caches 3306, des Datenports 3314, des Abtasters 3310 und der Ausführungseinheiten 3307 oder 3308. In mindestens einer Ausführungsform ist jede Ausführungseinheit (z. B. 3307A) eine eigenständige programmierbare Universalrecheneinheit, die dazu in der Lage ist, mehrere simultane Hardware-Threads auszuführen, während mehrere Datenelemente parallel für jeden Thread verarbeitet werden. In mindestens einer Ausführungsform ist das Array der Ausführungseinheiten 3307 und/oder 3308 so skalierbar, dass es eine beliebige Anzahl einzelner Ausführungseinheiten beinhaltet.
  • In mindestens einer Ausführungsform werden die Ausführungseinheiten 3307 und/oder 3308 hauptsächlich zum Ausführen von Shader-Programmen verwendet. In mindestens einer Ausführungsform kann der Shader-Prozessor 3302 verschiedene Shader-Programme verarbeiten und mit den Shader-Programmen assoziierte Ausführungs-Threads über einen Thread-Zuteiler 3304 zuteilen. In mindestens einer Ausführungsform beinhaltet der Thread-Zuteiler 3304 Logik zum Vermitteln von Thread-Initiierungsanforderungen von Grafik- und Medienpipelines und zum Instanziieren angeforderter Threads auf einer oder mehreren Ausführungseinheiten in den Ausführungseinheiten 3307 und/oder 3308. Zum Beispiel kann in mindestens einer Ausführungsform eine Geometriepipeline Vertex-, Tesselations- oder Geometrie-Shader zur Verarbeitung an die Thread-Ausführungslogik versenden. In mindestens einer Ausführungsform kann der Thread-Zuteiler 3304 auch Laufzeit-Thread-Erzeugungsanforderungen von ausführenden Shader-Programmen verarbeiten.
  • In mindestens einer Ausführungsform unterstützen die Ausführungseinheiten 3307 und/oder 3308 einen Anweisungssatz, der systemeigene Unterstützung für viele Standard-3D-Grafik-Shader-Anweisungen beinhaltet, sodass Shader-Programme aus Grafikbibliotheken (z. B. Direct 3D und OpenGL) mit einer minimalen Übersetzung ausgeführt werden. In mindestens einer Ausführungsform unterstützen die Ausführungseinheiten Vertex- und Geometrieverarbeitung (z. B. Vertexprogramme, Geometrieprogramme und/oder Vertex-Shader), Pixelverarbeitung (z. B. Pixel-Shader, Fragment-Shader) und Universalverarbeitung (z. B. Rechen- und Medien-Shader). In mindestens einer Ausführungsform ist jede der Ausführungseinheiten 3307 und/oder 3308, die eine oder mehrere arithmetisch-logische Einheiten (ALUs) beinhalten, zur Multi-Issue-Single-Instruction-Multiple-Data-(SIMD-)Ausführung in der Lage und der Mehr-Thread-Betrieb ermöglicht eine effiziente Ausführungsumgebung trotz Speicherzugriffen mit höherer Latenz. In mindestens einer Ausführungsform weist jeder Hardware-Thread innerhalb jeder Ausführungseinheit eine dedizierte Registerdatei mit hoher Bandbreite und einen assoziierten unabhängigen Thread-Status auf. In mindestens einer Ausführungsform erfolgt die Ausführung mit mehreren Ausgaben pro Takt an Pipelines, die für Integer- und Fließkommavorgänge mit einfacher oder doppelter Genauigkeit, SIMD-Verzweigungsfähigkeit, logische Vorgänge, transzendentale Vorgänge und andere verschiedene Vorgänge in der Lage sind. In mindestens einer Ausführungsform bewirkt die Abhängigkeitslogik innerhalb der Ausführungseinheiten 3307 und/oder 3308, dass ein wartender Thread schläft, während er auf Daten aus dem Speicher oder einer der gemeinsam genutzten Funktionen wartet, bis die angeforderten Daten zurückgegeben wurden. In mindestens einer Ausführungsform können, während ein wartender Thread schläft, Hardware-Ressourcen der Verarbeitung anderer Threads gewidmet werden. Zum Beispiel kann in mindestens einer Ausführungsform eine Ausführungseinheit während einer Verzögerung, die mit einem Vertex-Shader-Vorgang assoziiert ist, Vorgänge für einen Pixel-Shader, Fragment-Shader oder eine andere Art von Shader-Programm, einschließlich eines anderen Vertex-Shaders, durchführen.
  • In mindestens einer Ausführungsform arbeitet jede Ausführungseinheit in den Ausführungseinheiten 3307 und/oder 3308 an Arrays von Datenelementen. In mindestens einer Ausführungsform ist die Anzahl der Datenelemente eine „Ausführungsgröße“ oder die Anzahl der Kanäle für eine Anweisung. In mindestens einer Ausführungsform ist ein Ausführungskanal eine logische Ausführungseinheit für den Zugriff auf Datenelemente, die Maskierung und die Flusssteuerung innerhalb von Anweisungen. In mindestens einer Ausführungsform kann die Anzahl der Kanäle unabhängig von einer Anzahl der physischen arithmetisch-logischen Einheiten (ALUs) oder Gleitkommaeinheiten (FPUs) für einen konkreten Grafikprozessor sein. In mindestens einer Ausführungsform unterstützen die Ausführungseinheiten 3307 und/oder 3308 Integer- und Gleitkommadatentypen.
  • In mindestens einer Ausführungsform beinhaltet ein Anweisungssatz einer Ausführungseinheit SIMD-Anweisungen. In mindestens einer Ausführungsform können verschiedene Datenelemente als eine Paket-Datenart in einem Register gespeichert werden und die Ausführungseinheit verarbeitet verschiedene Elemente basierend auf der Datengröße der Elemente. Zum Beispiel werden in mindestens einer Ausführungsform beim Betreiben an einem 256 Bit breiten Vektor 256 Bit eines Vektors in einem Register gespeichert und eine Ausführungseinheit wird an einem Vektor als vier separate 64 Bit große gepackte Datenelemente (Datenelemente der Größe Vierfachwort (Quad-Word - QW)), acht separate 32 Bit große gepackte Datenelemente (Datenelemente der Größe Doppelwort (Double Word - DW)), sechzehn separate 16 Bit große gepackte Datenelemente (Datenelemente der Größe Wort (Word - W)) oder zweiunddreißig separate 8 Bit große Datenelemente (Datenelemente der Größe Byte (B)) betrieben. In mindestens einer Ausführungsform sind jedoch andere Vektorbreiten und Registergrößen möglich.
  • In mindestens einer Ausführungsform können eine oder mehrere Ausführungseinheiten zu einer fusionierten Ausführungseinheit 3309A-3309N kombiniert werden, die Thread-Steuerlogik (3311A-3311N) aufweist, die fusionierten EUs gemeinsam ist, wie etwa die Ausführungseinheit 3307A, die mit der Ausführungseinheit 3308A zu der fusionierten Ausführungseinheit 3309A fusioniert wird. In mindestens einer Ausführungsform können mehrere EUs zu einer EU-Gruppe fusioniert werden. In mindestens einer Ausführungsform kann jede EU in einer fusionierten EU-Gruppe so ausgestaltet sein, dass sie einen separaten SIMD-Hardware-Thread ausführt, wobei die Anzahl der EUs in einer fusionierten EU-Gruppe je nach Ausführungsform variieren kann. In mindestens einer Ausführungsform können verschiedene SIMD-Breiten pro EU durchgeführt werden, einschließlich, aber nicht beschränkt auf, SIMD8, SIMD16 und SIMD32. In mindestens einer Ausführungsform beinhaltet jede fusionierte Grafikausführungseinheit 3309A-3309N mindestens zwei Ausführungseinheiten. Zum Beispiel beinhaltet in mindestens einer Ausführungsform die fusionierte Ausführungseinheit 3309A eine erste EU 3307A, eine zweite EU 3308A und Thread-Steuerlogik 3311A, die der ersten EU 3307A und der zweiten EU 3308A gemeinsam ist. In mindestens einer Ausführungsform steuert die Thread-Steuerlogik 3311A Threads, die auf der fusionierten Grafikausführungseinheit 3309A ausgeführt werden, sodass jede EU innerhalb der fusionierten Ausführungseinheiten 3309A-3309N unter Verwendung eines gemeinsamen Anweisungszeigerregisters ausgeführt werden kann.
  • In mindestens einer Ausführungsform sind ein oder mehrere interne Anweisungs-Caches (z. B. 3306) in der Thread-Ausführungslogik 3300 enthalten, um Thread-Anweisungen für Ausführungseinheiten zwischenzuspeichern. In mindestens einer Ausführungsform sind ein oder mehrere Daten-Caches (z. B. 3312) enthalten, um Thread-Daten während der Thread-Ausführung zwischenzuspeichern. In mindestens einer Ausführungsform ist ein Abtaster 3310 enthalten, um Texturabtastung für 3D-Operationen und Medienabtastung für Medienoperationen bereitzustellen. In mindestens einer Ausführungsform beinhaltet der Abtaster 3310 eine spezialisierte Textur- oder Medienabtastfunktionalität, um Textur- oder Mediendaten während eines Abtastprozesses zu verarbeiten, bevor die abgetasteten Daten einer Ausführungseinheit bereitgestellt werden.
  • Während der Ausführung senden Grafik- und Medienpipelines in mindestens einer Ausführungsform Thread-Initiierungsanforderungen über die Thread-Erzeugungs- und -Zuteilungslogik an die Thread-Ausführungslogik 3300. In mindestens einer Ausführungsform wird, sobald eine Gruppe geometrischer Objekte verarbeitet und in Pixeldaten gerastert wurde, die Pixelprozessorlogik (z. B. Pixel-Shader-Logik, Fragment-Shader-Logik usw.) innerhalb des Shader-Prozessors 3302 aufgerufen, um Ausgabeinformationen weiter zu berechnen und zu veranlassen, dass die Ergebnisse in Ausgabeflächen (z. B. Farbpuffer, Tiefenpuffer, Schablonenpuffer usw.) geschrieben werden. In mindestens einer Ausführungsform berechnet ein Pixel-Shader oder Fragment-Shader die Werte verschiedener Vertex-Attribute, die über ein gerastertes Objekt interpoliert werden sollen. In mindestens einer Ausführungsform führt die Pixelprozessorlogik innerhalb des Shader-Prozessors 3302 dann ein über eine Anwendungsprogrammierschnittstelle (API) zugeführtes Pixel- oder Fragment-Shader-Programm aus. In mindestens einer Ausführungsform teilt der Shader-Prozessor 3302 zum Ausführen eines Shader-Programms Threads über den Thread-Zuteiler 3304 einer Ausführungseinheit (z. B. 3308A) zu. In mindestens einer Ausführungsform verwendet der Shader-Prozessor 3302 die Texturabtastlogik in dem Abtaster 3310, um auf Texturdaten in Texturkarten zuzugreifen, die in Speicher gespeichert sind. In mindestens einer Ausführungsform werden durch arithmetische Vorgänge an Texturdaten und Eingabegeometriedaten Pixelfarbdaten für jedes geometrische Fragment berechnet oder ein oder mehrere Pixel von der weiteren Verarbeitung ausgeschlossen.
  • In mindestens einer Ausführungsform stellt der Datenport 3314 einen Speicherzugriffsmechanismus für die Thread-Ausführungslogik 3300 bereit, um verarbeitete Daten zur weiteren Verarbeitung an einer Grafikprozessor-Ausgabepipeline an Speicher auszugeben. In mindestens einer Ausführungsform beinhaltet der Datenport 3314 einen oder mehrere Cache-Speicher (z. B. den Daten-Cache 3312) oder ist an diesen gekoppelt, um Daten für den Speicherzugriff über einen Datenport zwischenzuspeichern.
  • Wie in 33B veranschaulicht, kann eine Grafikausführungseinheit 3308 in mindestens einer Ausführungsform eine Anweisungsabrufeinheit 3337, ein Array von allgemeinen Registerbänken (general register file - GRF) 3324, ein Array von architektonischen Registerbänken (architectural registerfile-ARF) 3326, einen Thread-Vermittler 3322, eine Sendeeinheit 3330, eine Verzweigungseinheit 3332, einen Satz SIMD-Gleitkommaeinheiten (FPUs) 3334 und einen Satz dedizierter Integer-SIMD-ALUs 3335 beinhalten. In mindestens einer Ausführungsform beinhalten die GRF 3324 und die ARF 3326 einen Satz allgemeiner Registerbänke und Architekturregisterbänke, die mit jedem simultanen Hardware-Thread assoziiert sind, der in der Grafikausführungseinheit 3308 aktiv sein kann. In mindestens einer Ausführungsform wird der architektonische Zustand pro Thread in der ARF 3326 verwaltet, während die während der Thread-Ausführung verwendeten Daten in der GRF 3324 gespeichert werden. In mindestens einer Ausführungsform kann der Ausführungszustand jedes Threads, einschließlich der Anweisungszeiger für jeden Thread, in Thread-spezifischen Registern in der ARF 3326 aufbewahrt werden.
  • In mindestens einer Ausführungsform weist die Grafikausführungseinheit 3308 eine Architektur auf, die eine Kombination aus simultanem Multi-Threading (Simultaneous Multi-Threading - SMT) und feinkörnigem verschachteltem Multi-Threading (Interleaved Multi-Threading - IMT) ist. In mindestens einer Ausführungsform weist die Architektur eine modulare Konfiguration auf, die zur Ausgestaltungszeit basierend auf einer Zielanzahl von simultanen Threads und der Anzahl von Registern pro Ausführungseinheit fein abgestimmt werden kann, wobei die Ressourcen der Ausführungseinheit auf die Logik aufgeteilt werden, die zur Ausführung mehrerer simultaner Threads verwendet wird.
  • In mindestens einer Ausführungsform kann die Grafikausführungseinheit 3308 mehrere Anweisungen gleichzeitig ausgeben, die jeweils unterschiedliche Anweisungen sein können. In mindestens einer Ausführungsform kann der Thread-Vermittler 3322 des Grafikausführungseinheits-Threads 3308 Anweisungen einer der Sendeeinheit 3330, der Verzweigungseinheit 3332 oder der SIMD-FPU(s) 3334 zur Ausführung zuteilen. In mindestens einer Ausführungsform kann jeder Ausführungs-Thread auf 128 Universalregister innerhalb der GRF 3324 zugreifen, wobei jedes Register 32 Byte speichern kann, die als SIMD-8-Elementvektor von 32-Bit-Datenelementen zugänglich sind. In mindestens einer Ausführungsform weist jeder Thread der Ausführungseinheit Zugriff auf 4 Kilobyte innerhalb der GRF 3324 auf, obwohl Ausführungsformen nicht derart beschränkt sind und in anderen Ausführungsformen mehr oder weniger Registerressourcen bereitgestellt sein können. In mindestens einer Ausführungsform können bis zu sieben Threads simultan ausgeführt werden, obwohl die Anzahl der Threads pro Ausführungseinheit gemäß Ausführungsform auch variieren kann. In mindestens einer Ausführungsform, in der sieben Threads auf 4 Kilobyte zugreifen können, kann die GRF 3324 insgesamt 28 Kilobyte speichern. In mindestens einer Ausführungsform können flexible Adressierungsmodi zulassen, dass Register gemeinsam adressiert werden, um effektiv breitere Register aufzubauen oder gestaffelte rechteckige Blockdatenstrukturen darzustellen.
  • In mindestens einer Ausführungsform werden Speicheroperationen, Abtasteroperationen und andere Systemkommunikation mit längerer Latenz über „Sende“-Anweisungen zugeteilt, die durch Nachrichtenweitergabe an die Sendeeinheit 3330 ausgeführt werden. In mindestens einer Ausführungsform werden Verzweigungsanweisungen der Verzweigungseinheit 3332 zugeteilt, um SIMD-Divergenz und schließlich -Konvergenz zu erleichtern.
  • In mindestens einer Ausführungsform beinhaltet die Grafikausführungseinheit 3308 eine oder mehrere SIMD-Gleitkommaeinheiten (FPU(s)) 3334 zum Durchführen von Gleitkommaoperationen. In mindestens einer Ausführungsform unterstützen die FPU(s) 3334 auch Integerberechnung. In mindestens einer Ausführungsform können die FPU(s) 3334 bis zu einer Anzahl von M 32-Bit-Gleitkomma- (oder -Integer-) Operationen über SIMD ausführen oder bis zu 2M 16-Bit-Integer- oder 16-Bit-Gleitkommaoperationen über SIMD ausführen. In mindestens einer Ausführungsform stellt mindestens eine FPU erweiterte mathematische Fähigkeiten bereit, um transzendentale mathematische Funktionen mit hohem Durchsatz und 64-Bit-Gleitkomma mit doppelter Genauigkeit zu unterstützen. In mindestens einer Ausführungsform ist auch ein Satz von 8-Bit-Integer-SIMD-ALUs 3335 vorhanden, der spezifisch zum Durchführen von Operationen, die mit Berechnungen für maschinelles Lernen assoziiert sind, optimiert sein kann.
  • In mindestens einer Ausführungsform können Arrays von mehreren Instanzen der Grafikausführungseinheit 3308 in einer Grafikteilkern-Gruppierung (z. B. einer Teil-Slice) instanziiert sein. In mindestens einer Ausführungsform kann die Ausführungseinheit 3308 Anweisungen über eine Vielzahl von Ausführungskanälen hinweg ausführen. In mindestens einer Ausführungsform wird jeder Thread, der auf der Grafikausführungseinheit 3308 ausgeführt wird, auf einem anderen Kanal ausgeführt.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 915 in die Thread-Ausführungslogik 3300 einbezogen sein. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 9A oder 9B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in chipinternem oder chipexternem Speicher und/oder in Registern (gezeigt oder nicht gezeigt) gespeichert werden, die ALUs der Thread-Ausführungslogik 3300 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 34 veranschaulicht eine Parallelverarbeitungseinheit („PPU“) 3400 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist die PPU 3400 mit maschinenlesbarem Code konfiguriert, der bei Ausführung durch die PPU 3400 die PPU 3400 dazu veranlasst, einige oder alle der in dieser gesamten Offenbarung beschriebenen Prozesse und Techniken durchzuführen. In mindestens einer Ausführungsform ist die PPU 3400 ein Multi-Thread-Prozessor, der auf einer oder mehreren Vorrichtungen mit integrierter Schaltung implementiert ist und der Multi-Threading als Technik zur Latenzverbergung nutzt, die dazu ausgestaltet ist, computerlesbare Anweisungen (auch als maschinenlesbare Anweisungen oder einfach Anweisungen bezeichnet) auf mehreren Threads parallel zu verarbeiten. In mindestens einer Ausführungsform bezieht sich ein Thread auf einen Ausführungs-Thread und er ist eine Instanziierung eines Satzes von Anweisungen, der dazu konfiguriert ist, durch die PPU 3400 ausgeführt zu werden. In mindestens einer Ausführungsform ist die PPU 3400 eine Grafikverarbeitungseinheit („GPU“), die so konfiguriert ist, dass sie eine Grafik-Rendering-Pipeline zum Verarbeiten dreidimensionaler („3D“) Grafikdaten implementiert, um zweidimensionale („2D“) Bilddaten zur Anzeige auf einer Anzeigevorrichtung, wie etwa einer Vorrichtung mit Flüssigkristallanzeige („LCD“), zu erzeugen. In mindestens einer Ausführungsform wird die PPU 3400 genutzt, um Berechnungen, wie etwa lineare Algebraoperationen und Operationen des maschinellen Lernens, durchzuführen. 34 veranschaulicht ein Beispiel für einen Parallelprozessor, der nur zu Veranschaulichungszwecken dient und als nicht einschränkendes Beispiel für Prozessorarchitekturen ausgelegt werden sollte, die innerhalb des Umfangs dieser Offenbarung in Betracht gezogen werden, und dass ein beliebiger geeigneter Prozessor zur Ergänzung und/oder als Ersatz für diesen eingesetzt werden kann.
  • In mindestens einer Ausführungsform sind eine oder mehrere PPUs 3400 so konfiguriert, dass sie Anwendungen für Hochleistungsrechnen (High Performance Computing - „HPC“), für ein Rechenzentrum und für maschinelles Lernen beschleunigen. In mindestens einer Ausführungsform ist die PPU 3400 so konfiguriert, dass sie Deep-Learning-Systeme und -Anwendungen beschleunigt, einschließlich der folgenden nicht einschränkenden Beispiele: Plattformen für autonome Fahrzeuge, Deep Learning, Sprach-, Bild- und Texterkennungssysteme mit hoher Genauigkeit, intelligente Videoanalytik, Molekularsimulationen, Arzneimittelforschung, Krankheitsdiagnose, Wettervorhersage, Big-Data-Analytik, Astronomie, Molekulardynamiksimulation, Finanzmodellierung, Robotik, Fabrikautomatisierung, Echtzeit-Sprachübersetzung, Online-Suchoptimierungen und personalisierte Benutzerempfehlungen und mehr.
  • In mindestens einer Ausführungsform beinhaltet die PPU 3400 ohne Einschränkung eine Eingabe/Ausgabe-(„E/A“-)Einheit 3406, eine Frontend-Einheit 3410, eine Scheduler-Einheit 3412, eine Arbeitsverteilungseinheit 3414, einen Hub 3416, eine Kreuzschiene (crossbar - „XBar“) 3420, einen oder mehrere Universalverarbeitungscluster („GPCs“) 3418 und eine oder mehrere Partitionseinheiten („Speicherpartitionseinheiten“) 3422. In mindestens einer Ausführungsform ist die PPU 3400 mit einem Host-Prozessor oder anderen PPUs 3400 über eine oder mehrere Hochgeschwindigkeits-GPU-Zusammenschaltungen („GPU-Zusammenschaltungen“) 3408 verbunden. In mindestens einer Ausführungsform ist die PPU 3400 über einen Systembus 3402 mit einem Host-Prozessor oder anderen Peripherievorrichtungen verbunden. In mindestens einer Ausführungsform ist die PPU 3400 mit einem lokalen Speicher verbunden, der eine oder mehrere Speichervorrichtungen („Speicher“) 3404 umfasst. In mindestens einer Ausführungsform beinhalten die Speichervorrichtungen 3404 ohne Einschränkung eine oder mehrere Vorrichtungen mit dynamischem Direktzugriffsspeicher („DRAM“). In mindestens einer Ausführungsform sind eine oder mehrere DRAM-Vorrichtungen als Teilsysteme mit Speicher mit hoher Bandbreite („HBM“) konfiguriert und/oder konfigurierbar, wobei mehrere DRAM-Dies in jeder Vorrichtung gestapelt sind.
  • In mindestens einer Ausführungsform kann sich die Hochgeschwindigkeits-GPU-Zusammenschaltung 3408 auf eine drahtbasierte mehrspurige Kommunikationsverknüpfung beziehen, die durch Systeme zum Skalieren verwendet wird und eine oder mehrere PPUs 3400 in Kombination mit einer oder mehreren zentralen Verarbeitungseinheiten („CPUs“) beinhaltet und die Cache-Kohärenz zwischen PPUs 3400 und CPUs sowie CPU-Mastering unterstützt. In mindestens einer Ausführungsform werden Daten und/oder Befehle durch die Hochgeschwindigkeits-GPU-Zusammenschaltung 3408 über den Hub 3416 zu/von anderen Einheiten der PPU 3400 übertragen, wie etwa einer/einem oder mehreren Kopier-Engines, Videocodierern, Videodecodierern, Leistungsverwaltungseinheiten und anderen Komponenten, die in 34 möglicherweise nicht explizit veranschaulicht sind.
  • In mindestens einer Ausführungsform ist die E/A-Einheit 3406 so konfiguriert, dass sie Kommunikation (z. B. Befehle, Daten) von einem Host-Prozessor (in 34 nicht veranschaulicht) über den Systembus 3402 überträgt und empfängt. In mindestens einer Ausführungsform kommuniziert die E/A-Einheit 3406 mit dem Host-Prozessor direkt über den Systembus 3402 oder durch eine oder mehrere Zwischenvorrichtungen wie etwa eine Speicherbrücke. In mindestens einer Ausführungsform kann die E/A-Einheit 3406 über den Systembus 3402 mit einem oder mehreren anderen Prozessoren kommunizieren, wie etwa einer oder mehreren der PPUs 3400. In mindestens einer Ausführungsform implementiert die E/A-Einheit 3406 eine Peripheral-Component-Interconnect-Express-(„PCle“-)Schnittstelle für die Kommunikation über einen PCIe-Bus. In mindestens einer Ausführungsform implementiert die E/A-Einheit 3406 Schnittstellen zum Kommunizieren mit externen Vorrichtungen.
  • In mindestens einer Ausführungsform decodiert die E/A-Einheit 3406 über den Systembus 3402 empfangene Pakete. In mindestens einer Ausführungsform stellen mindestens einige Pakete Befehle dar, die so konfiguriert sind, dass sie die PPU 3400 dazu veranlassen, verschiedene Operationen durchzuführen. In mindestens einer Ausführungsform überträgt die E/A-Einheit 3406 decodierte Befehle an verschiedene andere Einheiten der PPU 3400, wie durch Befehle vorgegeben. In mindestens einer Ausführungsform werden Befehle an die Frontend-Einheit 3410 übertragen und/oder an den Hub 3416 oder andere Einheiten der PPU 3400 übertragen, wie etwa eine oder mehrere Kopier-Engines, einen Videocodierer, einen Videodecodierer, eine Leistungsverwaltungseinheit usw. (in 34 nicht explizit veranschaulicht). In mindestens einer Ausführungsform ist die E/A-Einheit 3406 so konfiguriert, dass sie Kommunikation zwischen und unter verschiedenen logischen Einheiten der PPU 3400 routet.
  • In mindestens einer Ausführungsform codiert ein durch den Host-Prozessor ausgeführtes Programm einen Befehlsstrom in einem Puffer, der der PPU 3400 Arbeitslasten zur Verarbeitung bereitstellt. In mindestens einer Ausführungsform umfasst eine Arbeitslast Anweisungen und Daten, die von diesen Anweisungen verarbeitet werden sollen. In mindestens einer Ausführungsform ist ein Puffer eine Region in einem Speicher, auf die sowohl ein Host-Prozessor als auch die PPU 3400 zugreifen können (z. B. Lesen/Schreiben) - eine Host-Schnittstelleneinheit kann so konfiguriert sein, dass sie auf diesen Puffer in einem Systemspeicher, der mit dem Systembus 3402 verbunden ist, über Speicheranforderungen zugreift, die über den Systembus 3402 durch die E/A-Einheit 3406 übertragen werden. In mindestens einer Ausführungsform schreibt ein Host-Prozessor einen Befehlsstrom in einen Puffer und überträgt dann einen Zeiger für einen Start eines Befehlsstroms an die PPU 3400, sodass die Frontend-Einheit 3410 Zeiger für einen oder mehrere Befehlsströme empfängt und einen oder mehrere Befehlsströme verwaltet, indem sie Befehle aus Befehlsströmen liest und Befehle an verschiedene Einheiten der PPU 3400 weiterleitet.
  • In mindestens einer Ausführungsform ist die Frontend-Einheit 3410 an die Scheduler-Einheit 3412 gekoppelt, die verschiedene GPCs 3418 zum Verarbeiten von Tasks konfiguriert, die durch einen oder mehrere Befehlsströme definiert sind. In mindestens einer Ausführungsform ist die Scheduler-Einheit 3412 so konfiguriert, dass sie Zustandsinformationen in Bezug auf verschiedene durch die Scheduler-Einheit 3412 verwaltete Tasks verfolgt, wobei die Zustandsinformationen angeben können, welchem der GPCs 3418 ein Task zugeordnet ist, ob der Task aktiv oder inaktiv ist, welcher Prioritätslevel mit dem Task assoziiert ist, und so weiter. In mindestens einer Ausführungsform verwaltet die Scheduler-Einheit 3412 die Ausführung einer Vielzahl von Tasks auf einem oder mehreren GPCs 3418.
  • In mindestens einer Ausführungsform ist die Scheduler-Einheit 3412 an die Arbeitsverteilungseinheit 3414 gekoppelt, die so konfiguriert ist, dass sie Tasks zur Ausführung auf den GPCs 3418 zuteilt. In mindestens einer Ausführungsform verfolgt die Arbeitsverteilungseinheit 3414 eine Anzahl geplanter Tasks nach, die von der Scheduler-Einheit 3412 empfangen wurde, und die Arbeitsverteilungseinheit 3414 verwaltet einen Pool ausstehender Tasks und einen Pool aktiver Tasks für jeden der GPCs 3418. In mindestens einer Ausführungsform umfasst der Pool ausstehender Tasks eine Anzahl von Schlitzen (z. B. 32 Schlitze), die Tasks enthalten, die zur Verarbeitung durch einen konkreten GPC 3418 zugeordnet sind; ein Pool aktiver Tasks kann eine Anzahl von Schlitzen (z. B. 4 Schlitze) für Tasks umfassen, die aktiv durch die GPCs 3418 verarbeitet werden, sodass, wenn einer der GPCs 3418 die Ausführung eines Tasks abschließt, dieser Task aus diesem Pool aktiver Tasks für den GPC 3418 entfernt wird und ein anderer Task aus einem Pool ausstehender Tasks ausgewählt und zur Ausführung auf dem GPC 3418 eingeplant wird. Falls ein aktiver Task auf dem GPC 3418 inaktiv ist, wie etwa, während er darauf wartet, dass eine Datenabhängigkeit aufgelöst wird, dann wird in mindestens einer Ausführungsform dieser aktive Task aus dem GPC 3418 entfernt und in diesen Pool ausstehender Tasks zurückgeführt, während ein anderer Task in diesem Pool ausstehender Tasks ausgewählt und zur Ausführung auf dem GPC 3418 eingeplant wird.
  • In mindestens einer Ausführungsform kommuniziert die Arbeitsverteilungseinheit 3414 mit einem oder mehreren GPCs 3418 über die XBar 3420. In mindestens einer Ausführungsform ist die XBar 3420 ein Zusammenschaltungsnetz, das viele Einheiten der PPU 3400 an andere Einheiten der PPU 3400 koppelt und dazu konfiguriert sein kann, die Arbeitsverteilungseinheit 3414 an einen konkreten GPC 3418 zu koppeln. In mindestens einer Ausführungsform können auch eine oder mehrere andere Einheiten der PPU 3400 über den Hub 3416 mit der XBar 3420 verbunden sein.
  • In mindestens einer Ausführungsform werden Tasks durch die Scheduler-Einheit 3412 verwaltet und durch die Arbeitsverteilungseinheit 3414 einem der GPCs 3418 zugeteilt. In mindestens einer Ausführungsform ist der GPC 3418 so konfiguriert, dass er einen Task verarbeitet und Ergebnisse erzeugt. In mindestens einer Ausführungsform können die Ergebnisse durch andere Tasks innerhalb des GPC 3418 verbraucht, über die XBar 3420 an einen anderen GPC 3418 geroutet oder in dem Speicher 3404 gespeichert werden. In mindestens einer Ausführungsform können die Ergebnisse über die Partitionseinheiten 3422, die eine Speicherschnittstelle zum Lesen und Schreiben von Daten in den/aus dem Speicher 3404 implementieren, in den Speicher 3404 geschrieben werden. In mindestens einer Ausführungsform können die Ergebnisse über die Hochgeschwindigkeits-GPU-Zusammenschaltung 3408 an eine andere PPU 3404 oder CPU übertragen werden. In mindestens einer Ausführungsform beinhaltet die PPU 3400 ohne Einschränkung eine Anzahl U von Partitionseinheiten 3422, die gleich einer Anzahl von separaten und unterschiedlichen Speichervorrichtungen 3404 ist, die an die PPU 3400 gekoppelt sind, wie hierin in Verbindung mit 36 detaillierter beschrieben.
  • In mindestens einer Ausführungsform führt ein Host-Prozessor einen Treiberkernel aus, der eine Anwendungsprogrammierschnittstelle („API“) implementiert, die es einer oder mehreren auf einem Host-Prozessor ausgeführten Anwendungen ermöglicht, Operationen zur Ausführung auf der PPU 3400 zu planen. In mindestens einer Ausführungsform werden mehrere Rechenanwendungen simultan durch die PPU 3400 ausgeführt und die PPU 3400 stellt Isolierung, Dienstgüte (quality of service - „QoS“) und unabhängige Adressräume für mehrere Rechenanwendungen bereit. In mindestens einer Ausführungsform erzeugt eine Anwendung Anweisungen (z. B. in Form von API-Aufrufen), die einen Treiberkernel dazu veranlassen, einen oder mehrere Tasks zur Ausführung durch die PPU 3400 zu erzeugen, und dieser Treiberkernel gibt Tasks an einen oder mehrere Ströme aus, die durch die PPU 3400 verarbeitet werden. In mindestens einer Ausführungsform umfasst jede Task eine oder mehrere Gruppen zugehöriger Threads, die als Warp bezeichnet werden können. In mindestens einer Ausführungsform umfasst ein Warp eine Vielzahl von verwandten Threads (z. B. 32 Threads), die parallel ausgeführt werden kann. In mindestens einer Ausführungsform können sich kooperierende Threads auf eine Vielzahl von Threads beziehen, die Anweisungen zur Durchführung von Tasks enthalten und die Daten über einen gemeinsam genutzten Speicher austauschen. In mindestens einer Ausführungsform werden Threads und kooperierende Threads in Verbindung mit 36 detaillierter beschrieben.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird der Deep-Learning-Anwendungsprozessor verwendet, um ein Modell des maschinellen Lernens, wie etwa ein neuronales Netz, zu trainieren, um der PPU 3400 bereitgestellte Informationen vorherzusagen oder zu inferenzieren. In mindestens einer Ausführungsform wird der Deep-Learning-Anwendungsprozessor 3400 verwendet, um Informationen auf Grundlage eines trainierten Modells des maschinellen Lernens (z. B. eines neuronalen Netzes) zu inferenzieren oder vorherzusagen, das durch einen anderen Prozessor oder ein anderes System oder durch die PPU 3400 trainiert wurde. In mindestens einer Ausführungsform kann die PPU 3400 verwendet werden, um einen oder mehrere der hierin beschriebenen Anwendungsfälle für neuronale Netzwerke durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 35 veranschaulicht einen Universalverarbeitungscluster („GPC“) 3500 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform handelt es sich bei dem GPC 3500 um den GPC 3418 aus 34. In mindestens einer Ausführungsform beinhaltet jeder GPC 3500 ohne Einschränkung eine Anzahl von Hardware-Einheiten zum Verarbeiten von Tasks und beinhaltet jeder GPC 3500 ohne Einschränkung einen Pipelineverwalter 3502, eine Vor-Rasteroperationeneinheit (preraster operations unit - „preROP“) 3504, eine Raster-Engine 3508, eine Arbeitsverteilungskreuzschiene (work distribution crossbar - „WDX“) 3516, eine Speicherverwaltungseinheit („MMU“) 3518, einen oder mehrere Datenverarbeitungscluster (Data Processing Clusters - „DPCs“) 3506 und eine beliebige geeignete Kombination von Teilen.
  • In mindestens einer Ausführungsform wird der Betrieb des GPC 3500 durch den Pipelineverwalter 3502 gesteuert. In mindestens einer Ausführungsform verwaltet der Pipelineverwalter 3502 die Konfiguration eines oder mehrerer DPCs 3506 für die Verarbeitung von Tasks, die dem GPC 3500 zugewiesen sind. In mindestens einer Ausführungsform konfiguriert der Pipelineverwalter 3502 mindestens einen von einem oder mehreren DPCs 3506 dazu, mindestens einen Abschnitt einer Grafik-Rendering-Pipeline zu implementieren. In mindestens einer Ausführungsform ist der DPC 3506 dazu konfiguriert, ein Vertex-Shader-Programm auf einem programmierbaren Streaming-Multiprozessor (streaming multi-processor - „SM“) 3514 auszuführen. In mindestens einer Ausführungsform ist der Pipelineverwalter 3502 so konfiguriert, dass er die von einer Arbeitsverteilungseinheit empfangenen Pakete an zweckmäßige logische Einheiten innerhalb des GPC 3500 routet, und in mindestens einer Ausführungsform können einige Pakete an Festfunktions-Hardwareeinheiten in dem preROP 3504 und/oder der Raster-Engine 3508 geroutet werden, während andere Pakete zum Verarbeiten durch eine Primitiv-Engine 3512 oder den SM 3514 an die DPCs 3506 geroutet werden können. In mindestens einer Ausführungsform konfiguriert der Pipelineverwalter 3502 mindestens einen der DPCs 3506 zum Implementieren eines Modells eines neuronalen Netzes und/oder einer Rechenpipeline.
  • In mindestens einer Ausführungsform ist die preROP-Einheit 3504 so konfiguriert, dass sie in mindestens einer Ausführungsform die durch die Raster-Engine 3508 und die DPCs 3506 erzeugten Daten an eine Einheit für Rasteroperationen (Raster Operations - „ROP“) in der Partitionseinheit 3422 routet, die vorstehend in Verbindung mit 34 detaillierter beschrieben ist. In mindestens einer Ausführungsform ist die preROP-Einheit 3504 so konfiguriert, dass sie unter anderem Optimierungen für die Farbmischung durchführt, Pixelfarbdaten organisiert und Adressübersetzungen durchführt. In mindestens einer Ausführungsform beinhaltet die Raster-Engine 3508 ohne Einschränkung eine Anzahl von Festfunktions-Hardwareeinheiten, die so konfiguriert sind, dass sie verschiedene Rasteroperationen durchführen, und in mindestens einer Ausführungsform beinhaltet die Raster-Engine 3508 ohne Einschränkung eine Setup-Engine, eine Grobraster-Engine, eine Culling-Engine, eine Clipping-Engine, eine Feinraster-Engine, eine Kachelverschmelzungs-Engine und eine beliebige geeignete Kombination davon. In mindestens einer Ausführungsform empfängt die Setup-Engine transformierte Vertices und sie erzeugt Ebenengleichungen, die mit dem durch die Vertices definierten geometrischen Primitiv assoziiert sind; die Ebenengleichungen werden an eine Grobraster-Engine übertragen, um Abdeckungsinformationen (z. B. eine x-, y-Abdeckungsmaske für eine Kachel) für das Primitiv zu erzeugen; die Ausgabe einer Grobraster-Engine wird an eine Culling-Engine übertragen, in der Fragmente, die mit einem Primitiv assoziiert sind und einen z-Test nicht bestehen, Culling unterzogen werden und an eine Clipping-Engine übertragen werden, in der Fragmente, die außerhalb eines Sichtkegelstumpfes liegen, Clipping unterzogen werden. In mindestens einer Ausführungsform werden Fragmente, die das Clipping und Culling überstehen, an eine Feinraster-Engine übergeben, um Attribute für Pixelfragmente auf Grundlage von Ebenengleichungen zu erzeugen, die durch eine Setup-Engine erzeugt werden. In mindestens einer Ausführungsform umfasst eine Ausgabe der Raster-Engine 3508 Fragmente, die durch eine beliebige geeignete Entität, wie etwa durch einen innerhalb des DPC 3506 implementierten Fragment-Shader, verarbeitet werden sollen.
  • In mindestens einer Ausführungsform umfasst jeder DPC 3506, der in dem GPC 3500 enthalten ist, ohne Einschränkung eine M-Pipe-Steuerung (M-Pipe Controller - „MPC“) 3510; die Primitiv-Engine 3512; einen oder mehrere SMs 3514 und eine beliebige geeignete Kombination davon. In mindestens einer Ausführungsform steuert die MPC 3510 den Betrieb des DPC 3506 und routet von dem Pipelineverwalter 3502 empfangene Pakete an die entsprechenden Einheiten in dem DPC 3506. In mindestens einer Ausführungsform werden Pakete, die mit einem Vertex assoziiert sind, an die Primitiv-Engine 3512 geroutet, die so konfiguriert ist, dass sie Vertexattribute, die mit einem Vertex assoziiert sind, aus dem Speicher abruft; im Gegensatz dazu können Pakete, die mit einem Shader-Programm assoziiert sind, an den SM 3514 übertragen werden.
  • In mindestens einer Ausführungsform umfasst der SM 3514 ohne Einschränkung einen programmierbaren Streaming-Prozessor, der so konfiguriert ist, dass er Tasks verarbeitet, die durch eine Anzahl von Threads dargestellt sind. In mindestens einer Ausführungsform weist der SM 3514 mehrere Threads auf und ist so konfiguriert, dass er eine Vielzahl von Threads (z. B. 32 Threads) aus einer konkreten Gruppe von Threads nebenläufig ausführt und eine Single-Instruction-Multiple-Data-(„SIMD“-)Architektur implementiert, bei der jeder Thread in einer Gruppe von Threads (z. B. ein Warp) so konfiguriert ist, dass er einen anderen Datensatz auf Grundlage des gleichen Anweisungssatzes verarbeitet. In mindestens einer Ausführungsform führen alle Threads in einer Gruppe von Threads einen gemeinsamen Satz von Anweisungen aus. In mindestens einer Ausführungsform implementiert der SM 3514 eine Single-lnstruction-Multiple-Thread-(„SIMT“-)Architektur, bei der jeder Thread in einer Gruppe von Threads so konfiguriert ist, dass er einen anderen Datensatz auf Grundlage dieses gemeinsamen Anweisungssatzes verarbeitet, wobei jedoch zugelassen wird, dass die einzelnen Threads in einer Gruppe von Threads während der Ausführung divergieren. In mindestens einer Ausführungsform werden ein Programmzähler, ein Aufrufstapel und ein Ausführungszustand für jeden Warp beibehalten, wodurch Nebenläufigkeit zwischen Warps und serielle Ausführung innerhalb von Warps ermöglicht werden, wenn Threads innerhalb eines Warps divergieren. In einer anderen Ausführungsform werden ein Programmzähler, ein Aufrufstack und ein Ausführungsstatus für jeden einzelnen Thread gehalten, was eine gleiche Nebenläufigkeit zwischen allen Threads innerhalb und zwischen Warps ermöglicht. In mindestens einer Ausführungsform wird der Ausführungszustand für jeden einzelnen Thread beibehalten und Threads, die gemeinsame Anweisungen ausführen, können zur besseren Effizienz konvergiert und parallel ausgeführt werden. Mindestens eine Ausführungsform des SM 3514 wird hierin detaillierter beschrieben.
  • In mindestens einer Ausführungsform stellt die MMU 3518 eine Schnittstelle zwischen dem GPC 3500 und einer Speicherpartitionseinheit (z. B. der Partitionseinheit 3422 aus 34) bereit und stellt die MMU 3518 Übersetzung virtueller Adressen in physische Adressen, Speicherschutz und Vermittlung von Speicheranforderungen bereit. In mindestens einer Ausführungsform stellt die MMU 3518 einen oder mehrere Adressenübersetzungspuffer („TLBs“) zum Durchführen der Übersetzung von virtuellen Adressen in physische Adressen in Speicher bereit.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird der Deep-Learning-Anwendungsprozessor verwendet, um ein Modell des maschinellen Lernens, wie etwa ein neuronales Netz, zu trainieren, um dem GPC 3500 bereitgestellte Informationen vorherzusagen oder zu inferenzieren. In mindestens einer Ausführungsform wird der GPC 3500 verwendet, um Informationen auf Grundlage eines trainierten Modells des maschinellen Lernens (z. B. eines neuronalen Netzes) zu inferenzieren oder vorherzusagen, das durch einen anderen Prozessor oder ein anderes System oder durch den GPC 3500 trainiert wurde. In mindestens einer Ausführungsform kann der GPC 3500 verwendet werden, um einen oder mehrere der hierin beschriebenen Anwendungsfälle für neuronale Netzwerke durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 36 veranschaulicht eine Speicherpartitionseinheit 3600 einer Parallelverarbeitungseinheit („PPU“) gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet die Speicherpartitionseinheit 3600 ohne Einschränkung eine Einheit 3602 für Rasteroperationen („ROP“), einen Level-Zwei-(„L2“-)Cache 3604, eine Speicherschnittstelle 3606 und eine beliebige geeignete Kombination davon. In mindestens einer Ausführungsform ist die Speicherschnittstelle 3606 an Speicher gekoppelt. In mindestens einer Ausführungsform kann die Speicherschnittstelle 3606 32-, 64-, 128-, 1024-Bit-Datenbusse oder dergleichen für die Hochgeschwindigkeitsdatenübermittlung implementieren. In mindestens einer Ausführungsform beinhaltet die PPU U Speicherschnittstellen 3606, wobei U eine positive ganze Zahl ist, mit einer Speicherschnittstelle 3606 pro Paar von Partitionseinheiten 3600, wobei jedes Paar von Partitionseinheiten 3600 mit einer entsprechenden Speichervorrichtung verbunden ist. In mindestens einer Ausführungsform kann die PPU zum Beispiel mit bis zu Y Speichervorrichtungen verbunden sein, wie etwa mit Speicherstapeln mit hoher Bandbreite oder mit einem synchronen dynamischen Direktzugriffsspeicher mit Graphics-Double-Data-Rate-Version 5 („GDDR5-SDRAM“).
  • In mindestens einer Ausführungsform implementiert die Speicherschnittstelle 3606 eine Speicherschnittstelle mit Speicher mit hoher Bandbreite der zweiten Generation („HBM2“) und Y ist gleich der Hälfte von U. In mindestens einer Ausführungsform befinden sich HBM2-Speicherstapel auf einem physischen Gehäuse mit einer PPU, was im Vergleich zu herkömmlichen GDDR5-SDRAM-Systemen erhebliche Leistungs- und Flächeneinsparungen bereitstellt. In mindestens einer Ausführungsform beinhaltet jeder HBM2-Stapel ohne Einschränkung vier Speicher-Dies mit Y=4, wobei jeder HBM2-Stapel zwei 128-Bit-Kanäle pro Die für insgesamt 8 Kanäle und eine Datenbusbreite von 1024 Bit beinhaltet. In mindestens einer Ausführungsform unterstützt dieser Speicher Single-Error-Correcting-Double-Error-Detecting-(„SECDED“-)Fehlerkorrekturcode (Error Correction Code - „ECC“) zum Schützen von Daten. ECC bietet in mindestens einer Ausführungsform eine höhere Zuverlässigkeit für Datenverarbeitungsanwendungen, die empfindlich auf Datenverfälschung reagieren.
  • In mindestens einer Ausführungsform implementiert die PPU eine Speicherhierarchie mit mehreren Levels. In mindestens einer Ausführungsform unterstützt die Speicherpartitionseinheit 3600 einen einheitlichen Speicher, um einen einzelnen einheitlichen virtuellen Adressraum für den Speicher der zentralen Verarbeitungseinheit („CPU“) und der PPU bereitzustellen, wodurch die gemeinsame Nutzung von Daten zwischen virtuellen Speichersystemen ermöglicht wird. In mindestens einer Ausführungsform wird die Häufigkeit von Zugriffen durch eine PPU auf einen Speicher, der sich auf anderen Prozessoren befindet, verfolgt, um sicherzustellen, dass Speicherseiten in den physischen Speicher der PPU verschoben werden, die häufiger auf Seiten zugreift. In mindestens einer Ausführungsform unterstützt die Hochgeschwindigkeits-GPU-Zusammenschaltung 3408 Adressübersetzungsdienste, die es der PPU ermöglichen, direkt auf die Seitentabellen einer CPU zuzugreifen, und einer PPU vollen Zugriff auf den CPU-Speicher bereitstellen.
  • In mindestens einer Ausführungsform übermitteln Kopier-Engines Daten zwischen mehreren PPUs oder zwischen PPUs und CPUs. In mindestens einer Ausführungsform können Kopier-Engines Seitenfehler für Adressen erzeugen, die nicht in Seitentabellen abgebildet sind, und die Speicherpartitionseinheit 3600 bedient dann Seitenfehler, indem sie die Adressen in die Seitentabelle abbildet, woraufhin die Kopier-Engine eine Übermittlung durchführt. In mindestens einer Ausführungsform ist der Speicher für mehrere Kopier-Engine-Vorgänge zwischen mehreren Prozessoren gepinnt (d. h. nicht auslagerbar), was den verfügbaren Speicher erheblich reduziert. In mindestens einer Ausführungsform können bei Hardware-Seitenfehlern Adressen an Kopier-Engines übergeben werden, ohne Rücksicht darauf, ob Speicherseiten speicherresident sind und ein Kopierprozess transparent ist.
  • Daten aus dem Speicher 3404 aus 34 oder einem anderen Systemspeicher werden gemäß mindestens einer Ausführungsform durch die Speicherpartitionseinheit 3600 abgerufen und in L2-Cache 3604 gespeichert, der sich auf dem Chip befindet und von verschiedenen GPCs gemeinsam genutzt wird. Jede Speicherpartitionseinheit 3600 beinhaltet in mindestens einer Ausführungsform ohne Einschränkung mindestens einen Abschnitt des L2-Caches, der mit einer entsprechenden Speichervorrichtung assoziiert ist. In mindestens einer Ausführungsform sind die Caches der unteren Levels in verschiedenen Einheiten innerhalb der GPCs implementiert. In mindestens einer Ausführungsform kann jeder der SMs 3514 aus 35 einen Level-1-(„L1“-)Cache implementieren, wobei dieser L1-Cache ein privater Speicher ist, der für einen konkreten SM 3514 dediziert ist, und Daten aus dem L2-Cache 3604 werden abgerufen und in jedem L1-Cache zum Verarbeiten in funktionellen Einheiten der SMs 3514 gespeichert. In mindestens einer Ausführungsform ist der L2-Cache 3604 an die Speicherschnittstelle 3606 und die in 34 gezeigte XBar 3420 gekoppelt.
  • In mindestens einer Ausführungsform führt die ROP-Einheit 3602 Grafikrasteroperationen durch, die mit der Pixelfarbe in Bezug stehen, wie etwa Farbkomprimierung, Pixel-Blending und mehr. In mindestens einer Ausführungsform implementiert die ROP-Einheit 3602 die Tiefenprüfung in Verbindung mit der Raster-Engine 3508, wobei sie eine Tiefe für eine Abtaststelle, die mit einem Pixelfragment assoziiert ist, von einer Culling-Engine der Raster-Engine 3508 empfängt. In mindestens einer Ausführungsform wird die Tiefe gegen eine entsprechende Tiefe in einem Tiefenpuffer für eine mit einem Fragment assoziierte Abtaststelle geprüft. Falls dieses Fragment die Tiefenprüfung für diese Abtaststelle besteht, aktualisiert die ROP-Einheit 3602 dann in mindestens einer Ausführungsform den Tiefenpuffer und überträgt ein Ergebnis dieser Tiefenprüfung an die Raster-Engine 3508. Es versteht sich, dass sich eine Anzahl der Partitionseinheiten 3600 von einer Anzahl der GPCs unterscheiden kann und daher kann jede ROP-Einheit 3602 in mindestens einer Ausführungsform an jeden GPC gekoppelt sein. In mindestens einer Ausführungsform verfolgt die ROP-Einheit 3602 die von verschiedenen GPCs empfangenen Pakete und bestimmt, ob ein durch die ROP-Einheit 3602 erzeugtes Ergebnis zu der XBar 3420 durchgeroutet werden soll.
  • 37 veranschaulicht einen Streaming-Multiprozessor („SM“) 3700 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der SM 3700 der SM aus 35. In mindestens einer Ausführungsform beinhaltet der SM 3700 ohne Einschränkung einen Anweisungs-Cache 3702, eine oder mehrere Scheduler-Einheiten 3704, eine Registerbank 3708, einen oder mehrere Verarbeitungskerne („Kerne“) 3710, eine oder mehrere Spezialfunktionseinheiten (special function units - „SFUs“) 3712, eine oder mehrere Lade-/Speichereinheiten (load/store units - „LSUs“) 3714, ein Zusammenschaltungsnetz 3716, einen gemeinsam genutzten Speicher/Level-Eins-(„L1“-)Cache 3718 und/oder eine beliebige geeignete Kombination davon.
  • In mindestens einer Ausführungsform teilt eine Arbeitsverteilungseinheit Tasks zur Ausführung auf Universalverarbeitungsclustern („GPCs“) von Parallelverarbeitungseinheiten („PPUs“) zu und jeder Task wird einem konkreten Datenverarbeitungscluster („DPC“) innerhalb eines GPC zugewiesen, und falls ein Task mit einem Shader-Programm assoziiert ist, wird dieser Task einem der SMs 3700 zugewiesen. In mindestens einer Ausführungsform empfängt die Scheduler-Einheit 3704 Tasks von einer Arbeitsverteilungseinheit und sie verwaltet die Anweisungsplanung für einen oder mehrere Thread-Blöcke, die dem SM 3700 zugeordnet sind. In mindestens einer Ausführungsform plant die Scheduler-Einheit 3704 Thread-Blöcke für die Ausführung als Warps aus parallelen Threads, wobei jedem Thread-Block mindestens ein Warp zugewiesen ist. In mindestens einer Ausführungsform führt jeder Warp Threads aus. In mindestens einer Ausführungsform verwaltet die Scheduler-Einheit 3704 eine Vielzahl von unterschiedlichen Thread-Blöcken, indem sie unterschiedlichen Thread-Blöcken Warps zuweist und dann während jedes Taktzyklus Anweisungen aus einer Vielzahl von unterschiedlichen kooperativen Gruppen verschiedenen funktionellen Einheiten (z. B. Verarbeitungskernen 3710, SFUs 3712 und LSUs 3714) zuteilt.
  • In mindestens einer Ausführungsform können sich kooperative Gruppen auf ein Programmiermodell zum Organisieren von Gruppen kommunizierender Threads beziehen, das es Entwicklern erlaubt, die Granularität auszudrücken, mit der Threads kommunizieren, und so den Ausdruck satterer, effizienterer paralleler Dekompositionen ermöglicht. In mindestens einer Ausführungsform unterstützen kooperative Start-APIs die Synchronisierung zwischen Thread-Blöcken zur Ausführung paralleler Algorithmen. In mindestens einer Ausführungsform bieten Anwendungen herkömmlicher Programmiermodelle ein einziges, einfaches Konstrukt für die Synchronisierung kooperierender Threads: eine Barriere über alle Threads eines Thread-Blocks (z. B. die Funktion syncthreads()). In mindestens einer Ausführungsform können Programmierer jedoch Gruppen von Threads mit einer kleineren Granularität als der des Thread-Blocks definieren und innerhalb der definierten Gruppen synchronisieren, um eine höhere Leistung, Designflexibilität und Software-Wiederverwendung in Form von gemeinsamen gruppenweiten Funktionsschnittstellen zu ermöglichen. In mindestens einer Ausführungsform ermöglichen es die kooperativen Gruppen Programmierern, Gruppen von Threads explizit auf Sub-Block- (d. h. so klein wie ein einzelner Thread) und Multi-Block-Granularität zu definieren und kollektive Operationen wie eine Synchronisation auf Threads in einer kooperativen Gruppe durchzuführen. In mindestens einer Ausführungsform unterstützt das Programmiermodell eine saubere Komposition über Softwaregrenzen hinweg, so dass Bibliotheken und Dienstprogramme innerhalb ihres lokalen Kontexts sicher synchronisieren können, ohne dass Annahmen über Konvergenz getroffen werden müssen. In mindestens einer Ausführungsform ermöglichen Primitive der kooperativen Gruppen neue Muster der kooperativen Parallelität, einschließlich, aber nicht beschränkt auf, Produzent-Konsument-Parallelität, opportunistische Parallelität und globale Synchronisation über ein gesamtes Gitter von Thread-Blöcken.
  • In mindestens einer Ausführungsform ist eine Zuteilungseinheit 3706 so konfiguriert, dass sie Anweisungen an eine oder mehrere funktionelle Einheiten überträgt, und die Scheduler-Einheit 3704 beinhaltet ohne Einschränkung zwei Zuteilungseinheiten 3706, die es ermöglichen, dass zwei unterschiedliche Anweisungen aus einem gemeinsamen Warp während jedes Taktzyklus zugeteilt werden. In mindestens einer Ausführungsform beinhaltet jede Scheduler-Einheit 3704 eine einzelne Zuteilungseinheit 3706 oder zusätzliche Zuteilungseinheiten 3706.
  • In mindestens einer Ausführungsform beinhaltet jeder SM 3700 in mindestens einer Ausführungsform ohne Einschränkung die Registerbank 3708, die einen Satz von Registern für funktionelle Einheiten des SM 3700 bereitstellt. In mindestens einer Ausführungsform ist die Registerbank 3708 auf jede funktionelle Einheit aufgeteilt, sodass jeder funktionellen Einheit ein dedizierter Abschnitt der Registerbank 3708 zugewiesen ist. In mindestens einer Ausführungsform ist die Registerbank 3708 auf unterschiedliche Warps aufgeteilt, die durch den SM 3700 ausgeführt werden, und die Registerbank 3708 stellt temporären Datenspeicher für Operanden bereit, die mit Datenpfaden von funktionellen Einheiten verbunden sind. In mindestens einer Ausführungsform umfasst jeder SM 3700 ohne Einschränkung eine Vielzahl von L Verarbeitungskernen 3710, wobei L eine positive ganze Zahl ist. In mindestens einer Ausführungsform beinhaltet der SM 3700 ohne Einschränkung eine große Anzahl (z. B. 128 oder mehr) von unterschiedlichen Verarbeitungskernen 3710. In mindestens einer Ausführungsform beinhaltet jeder Verarbeitungskern 3710 ohne Einschränkung eine Vollpipelineverarbeitungseinheit mit einfacher Genauigkeit, doppelter Genauigkeit und/oder gemischter Genauigkeit, die ohne Einschränkung eine arithmetisch-logische Einheit für Gleitkommazahlen und eine arithmetisch-logische Einheit für ganze Zahlen beinhaltet. In mindestens einer Ausführungsform implementieren die arithmetisch-logischen Einheiten für Gleitkommazahlen den Standard IEEE 754-2008 für Gleitkommaarithmetik. In mindestens einer Ausführungsform beinhalten die Verarbeitungskerne 3710 ohne Einschränkung 64 Gleitkommakerne mit einfacher Genauigkeit (32 Bit), 64 Integerkerne, 32 Gleitkommakerne mit doppelter Genauigkeit (64 Bit) und 8 Tensorkerne.
  • Tensorkerne sind gemäß mindestens einer Ausführungsform dazu konfiguriert, Matrixoperationen durchzuführen. In mindestens einer Ausführungsform sind ein oder mehrere Tensorkerne in den Verarbeitungskernen 3710 enthalten. In mindestens einer Ausführungsform sind die Tensorkerne so konfiguriert, dass sie Deep-Learning-Matrixarithmetik durchführen, wie z. B. Faltungsvorgänge für das Training und die Ableitung neuronaler Netzwerke. In mindestens einer Ausführungsform arbeitet jeder Tensorkern an einer 4x4-Matrix und er führt eine Matrixmultiplikations- und - akkumulationsoperation D = A X B + C durch, wobei A, B, C und D 4x4-Matrizen sind.
  • In mindestens einer Ausführungsform sind die Matrixmultiplikationseingaben A und B 16-Bit-Gleitkommamatrizen und die Akkumulationsmatrizen C und D 16-Bit-Gleitkomma- oder 32-Bit-Gleitkommamatrizen. In mindestens einer Ausführungsform arbeiten die Tensorkerne an 16-Bit-Gleitkommaeingabedaten mit 32-Bit-Gleitkommaakkumulation. In mindestens einer Ausführungsform verwendet die 16-Bit-Gleitkommamultiplikation 64 Operationen und ergibt ein Produkt mit voller Genauigkeit, das dann unter Verwendung von 32-Bit-Gleitkommaaddition mit anderen Zwischenprodukten für eine 4x4x4-Matrixmultiplikation akkumuliert wird. In mindestens einer Ausführungsform werden die Tensorkerne verwendet, um viel größere zweidimensionale oder höherdimensionale Matrixvorgänge durchzuführen, die aus diesen kleineren Elementen aufgebaut sind. In mindestens einer Ausführungsform macht eine API, wie etwa eine CUDA 9 C++ API, spezialisierte Matrixlade-, Matrixmultiplikations- und -akkumulations- sowie Matrixspeicheroperationen verfügbar, um die Tensorkerne anhand eines Programms mit CUDA-C++ effizient zu verwenden. In mindestens einer Ausführungsform wird auf einem CUDA-Level auf einer Warp-Level-Schnittstelle von Matrizen der Größe 16x16 ausgegangen, die sich über alle 32 Threads des Warp erstrecken.
  • In mindestens einer Ausführungsform umfasst jeder SM 3700 ohne Einschränkung M SFUs 3712, die Spezialfunktionen durchführen (z. B. Attributbewertung, reziproke Quadratwurzel und dergleichen). In mindestens einer Ausführungsform beinhalten die SFUs 3712 ohne Einschränkung eine Baumtraversierungseinheit, die so konfiguriert ist, dass sie eine hierarchische Baumdatenstruktur traversiert. In mindestens einer Ausführungsform beinhalten die SFUs 3712 ohne Einschränkung eine Textureinheit, die dazu konfiguriert ist, Texturkartenfilteroperationen durchzuführen. In mindestens einer Ausführungsform sind die Textureinheiten dazu konfiguriert, Texturkarten (z. B. ein 2D-Array von Texeln) aus Speicher zu laden und Texturkarten abzutasten, um abgetastete Texturwerte zur Verwendung in Shader-Programmen zu produzieren, die durch den SM 3700 ausgeführt werden. In mindestens einer Ausführungsform werden die Texturkarten in dem gemeinsam genutzten Speicher/L1-Cache 3718 gespeichert. In mindestens einer Ausführungsform implementieren die Textureinheiten Texturvorgänge, wie z. B. Filterungsvorgänge unter Verwendung von MIP-Karten (z. B. Texturkarten mit variierenden Detaillevels), gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet jeder SM 3700 ohne Einschränkung zwei Textureinheiten.
  • Jeder SM 3700 umfasst in mindestens einer Ausführungsform ohne Einschränkung N LSUs 3714, die Lade- und Speicheroperationen zwischen dem gemeinsam genutzten Speicher/L1-Cache 3718 und der Registerbank 3708 implementieren. Das Zusammenschaltungsnetz 3716 verbindet in mindestens einer Ausführungsform jede funktionelle Einheit mit der Registerbank 3708 und die LSU 3714 mit der Registerbank 3708 und dem gemeinsam genutzten Speicher/L1-Cache 3718. In mindestens einer Ausführungsform ist das Zusammenschaltungsnetz 3716 eine Kreuzschiene, die so konfiguriert sein kann, dass sie beliebige funktionelle Einheiten mit beliebigen Registern in der Registerbank 3708 verbindet und LSUs 3714 mit der Registerbank 3708 und Speicherorten in dem gemeinsam genutzten Speicher/L1-Cache 3718 verbindet.
  • In mindestens einer Ausführungsform ist der gemeinsam genutzte Speicher/L1-Cache 3718 ein Array von chipinternem Speicher, das in mindestens einer Ausführungsform die Datenspeicherung und die Kommunikation zwischen dem SM 3700 und der Primitiv-Engine sowie zwischen Threads in dem SM 3700 ermöglicht. In mindestens einer Ausführungsform umfasst der gemeinsam genutzte Speicher/L1-Cache 3718 ohne Einschränkung eine Speicherkapazität von 128 KB und er befindet sich in einem Pfad von dem SM 3700 zu einer Partitionseinheit. In mindestens einer Ausführungsform wird der gemeinsam genutzte Speicher/L1-Cache 3718 in mindestens einer Ausführungsform zum Zwischenspeichern von Lese- und Schreibvorgängen verwendet. In mindestens einer Ausführungsform sind einer oder mehrere von dem gemeinsam genutzten Speicher/L1-Cache 3718, L2-Cache und Speicher Ergänzungsspeicher.
  • Das Kombinieren der Funktionalität des Daten-Cache und des gemeinsam genutzten Speichers in einem einzelnen Speicherblock stellt in mindestens einer Ausführungsform eine verbesserte Rechenleistung für beide Typen von Speicherzugriffen bereit. In mindestens einer Ausführungsform wird die Kapazität durch Programme, die keinen gemeinsam genutzten Speicher verwenden, als Cache verwendet oder sie kann so verwendet werden, wie etwa, falls der gemeinsam genutzte Speicher so konfiguriert ist, dass er die Hälfte einer Kapazität verwendet, und Textur- und Lade-/Speicheroperationen die verbleibende Kapazität verwenden können. Die Integration in den gemeinsam genutzten Speicher/L1-Cache 3718 ermöglicht dem gemeinsam genutzten Speicher/L1-Cache 3718 gemäß mindestens einer Ausführungsform das Fungieren als Leitung mit hohem Durchsatz für Streaming-Daten, während simultan Zugriff mit hoher Bandbreite und niedriger Latenz auf häufig wiederverwendete Daten bereitgestellt wird. In mindestens einer Ausführungsform kann bei einer Konfiguration für Universalparallelberechnungen eine einfachere Konfiguration im Vergleich zur Grafikverarbeitung verwendet werden. In mindestens einer Ausführungsform werden Grafikverarbeitungseinheiten mit festen Funktionen umgangen, wodurch ein wesentlich einfacheres Programmiermodell entsteht. Bei einer Konfiguration für Universalparallelberechnungen ordnet eine Arbeitsverteilungseinheit in mindestens einer Ausführungsform Blöcke von Threads direkt den DPCs zu und verteilt diese. In mindestens einer Ausführungsform führen Threads in einem Block ein gemeinsames Programm aus, wobei eine eindeutige Thread-ID bei der Berechnung verwendet wird, um sicherzustellen, dass jeder Thread eindeutige Ergebnisse erzeugt, wobei der SM 3700 zum Ausführen des Programms und Durchführen von Berechnungen verwendet wird, der gemeinsam genutzte Speicher/L1-Cache 3718 zum Kommunizieren zwischen den Threads verwendet wird und die LSU 3714 zum Lesen des und Schreiben in den globalen Speicher durch den gemeinsam genutzten Speicher/L1-Cache 3718 und die Speicherpartitionseinheit verwendet wird. Bei der Konfiguration für Universalparallelberechnungen schreibt der SM 3700 in mindestens einer Ausführungsform Befehle, die durch die Scheduler-Einheit 3704 verwendet werden können, um neue Arbeit in den DPCs zu starten.
  • In mindestens einer Ausführungsform ist eine PPU in einem Desktop-Computer, einem Laptop-Computer, einem Tablet-Computer, Servern, Supercomputern, einem Smartphone (z. B. einer drahtlosen tragbaren Vorrichtung), einem persönlichen digitalen Assistenten („PDA“), einer Digitalkamera, einem Fahrzeug, einer am Kopf befestigten Anzeige, einer tragbaren elektronischen Vorrichtung usw. enthalten oder daran gekoppelt. In mindestens einer Ausführungsform ist die PPU auf einem einzigen Halbleitersubstrat untergebracht. In mindestens einer Ausführungsform ist die PPU in einem System-on-a-Chip („SoC“) zusammen mit einer oder mehreren anderen Einrichtungen wie zusätzlichen PPUs, Speicher, einer CPU mit reduziertem Befehlssatz („RISC“), einer Speicherverwaltungseinheit („MMU“), einem Digital-Analog-Wandler („DAC“) und dergleichen vorhanden.
  • In mindestens einer Ausführungsform kann die PPU auf einer Grafikkarte vorhanden sein, die eine oder mehrere Speichereinrichtungen aufweist. In mindestens einer Ausführungsform kann die Grafikkarte so ausgestaltet sein, dass sie mit einem PCIe-Steckplatz auf einem Motherboard eines Desktop-Computers verbunden werden kann. In mindestens einer Ausführungsform kann diese PPU eine integrierte Grafikverarbeitungseinheit („iGPU“) sein, die im Chipsatz einer Hauptplatine enthalten ist.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt. In mindestens einer Ausführungsform wird der Deep-Learning-Anwendungsprozessor verwendet, um ein Modell des maschinellen Lernens, wie etwa ein neuronales Netz, zu trainieren, um dem SM 3700 bereitgestellte Informationen vorherzusagen oder zu inferenzieren. In mindestens einer Ausführungsform wird der SM 3700 verwendet, um Informationen auf Grundlage eines trainierten Modells des maschinellen Lernens (z. B. eines neuronalen Netzes) zu inferenzieren oder vorherzusagen, das durch einen anderen Prozessor oder ein anderes System oder durch den SM 3700 trainiert wurde. In mindestens einer Ausführungsform kann der SM 3700 verwendet werden, um einen oder mehrere der hierin beschriebenen Anwendungsfälle für neuronale Netzwerke durchzuführen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • Es werden Ausführungsformen offenbart, die mit einer virtualisierten Rechenplattform für weiterentwickeltes Rechnen in Bezug stehen, wie etwa Bildinferenz und Bildverarbeitung in medizinischen Anwendungen. Ohne Einschränkung können Ausführungsformen Radiografie, Magnetresonanztomografie (MRT), Nuklearmedizin, Ultraschall, Sonografie, Elastografie, fotoakustische Bildgebung, Tomografie, Echokardiografie, funktionelle Nahinfrarotspektroskopie und Magnetpartikelbildgebung oder eine Kombination davon beinhalten. In mindestens einer Ausführungsform können eine virtualisierte Rechenplattform und die hierin beschriebenen damit assoziierten Prozesse zusätzlich oder alternativ, ohne Einschränkung, in der Forensikanalyse, der Erkennung und Abbildung des Untergrunds (z. B. Ölexploration, Archäologie, Paläontologie usw.), der Topografie, der Ozeanografie, der Geologie, der Osteologie, der Meteorologie, der intelligenten Bereichs- oder Objektverfolgung und -überwachung, der Sensordatenverarbeitung (z. B. RADAR, SONAR, LIDAR usw.) und/oder der Genomik und Gensequenzierung verwendet werden.
  • Unter Bezugnahme auf 38 ist 38 ein beispielhaftes Datenablaufdiagramm für einen Prozess 3800 zum Erzeugen und Einsetzen einer Bildverarbeitungs- und -inferenzpipeline gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 3800 zur Verwendung mit Bildgebungsvorrichtungen, Verarbeitungsvorrichtungen, Genomikvorrichtungen, Gensequenzierungsvorrichtungen, Radiologievorrichtungen und/oder anderen Vorrichtungstypen in einer oder mehreren Einrichtungen 3802 eingesetzt werden, wie etwa medizinischen Einrichtungen, Krankenhäusern, Gesundheitsinstituten, Kliniken, Forschungs- oder Diagnoselabors usw. In mindestens einer Ausführungsform kann der Prozess 3800 zum Durchführen einer Genomanalyse und -inferenz an Sequenzierungsdaten eingesetzt werden. Beispiele für Genomanalysen, die unter Verwendung der hierin beschriebenen Systeme und Prozesse durchgeführt werden können, beinhalten ohne Einschränkung das Varianten-Calling, die Mutationserkennung und die Quantifizierung der Genexpression.
  • In mindestens einer Ausführungsform kann der Prozess 3800 innerhalb eines Trainingssystems 3804 und/oder eines Einsatzsystems 3806 ausgeführt werden. In mindestens einer Ausführungsform kann das Trainingssystem 3804 verwendet werden, um das Training, den Einsatz und die Implementation von Modellen des maschinellen Lernens (z. B. neuronale Netze, Objektdetektionsalgorithmen, Algorithmen des maschinellen Sehens usw.) zur Verwendung in dem Einsatzsystem 3806 durchzuführen. In mindestens einer Ausführungsform kann das Einsatzsystem 3806 so konfiguriert sein, dass es Verarbeitungs- und Rechenressourcen in einer verteilten Rechenumgebung ablädt, um die Infrastrukturanforderungen in der Einrichtung 3802 zu reduzieren. In mindestens einer Ausführungsform kann das Einsatzsystem 3806 eine gestraffte Plattform zum Auswählen, individuellen Anpassen und Implementieren virtueller Instrumente zur Verwendung mit Bildgebungsvorrichtungen (z. B. MRT, CT-Scan, Röntgen, Ultraschall usw.) oder Sequenzierungsvorrichtungen in der Einrichtung 3802 bereitstellen. In mindestens einer Ausführungsform können virtuelle Instrumente softwaredefinierte Anwendungen zur Durchführung eines oder mehrerer Verarbeitungsvorgänge in Bezug auf Bildgebungsdaten beinhalten, die von Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen, Radiologievorrichtungen und/oder anderen Vorrichtungsarten erzeugt werden. In mindestens einer Ausführungsform können eine oder mehrere Anwendungen in einer Pipeline Dienste (z. B. Inferenz, Visualisierung, Berechnung, KI usw.) des Einsatzsystems 3806 während der Ausführung von Anwendungen verwenden oder aufrufen.
  • In mindestens einer Ausführungsform können einige der Anwendungen, die in weiterentwickelten Verarbeitungs- und Inferenzpipelines verwendet werden, Modelle des maschinellen Lernens oder andere Kl verwenden, um einen oder mehrere Verarbeitungsschritte durchzuführen. In mindestens einer Ausführungsform können Modelle des maschinellen Lernens in der Einrichtung 3802 unter Verwendung von Daten 3808 (wie etwa Bildgebungsdaten) trainiert werden, die in der Einrichtung 3802 erzeugt wurden (und auf einem oder mehreren Servern eines Bildarchivierungs- und Kommunikationssystems (picture archiving and communication system - PACS) in der Einrichtung 3802 gespeichert sind), und sie können unter Verwendung von Bildgebungs- oder Sequenzierungsdaten 3808 aus einer anderen Einrichtung oder anderen Einrichtungen (z. B. einem anderen Krankenhaus, Labor, einer anderen Klinik usw.) oder einer Kombination davon trainiert werden. In mindestens einer Ausführungsform kann das Trainingssystem 3804 verwendet werden, um Anwendungen, Dienste und/oder andere Ressourcen zum Erzeugen von funktionierenden, einsatzfähigen Modellen des maschinellen Lernens für das Einsatzsystem 3806 bereitzustellen.
  • In mindestens einer Ausführungsform kann eine Modellregistrierungsdatenbank 3824 durch Objektspeicher unterstützt werden, der Versionierung und Objekt-Metadaten unterstützen kann. In mindestens einer Ausführungsform kann der Zugriff auf den Objektspeicher zum Beispiel durch eine mit Cloud-Speicher (z. B. einer Cloud 3926 aus 39) kompatible Anwendungsprogrammierschnittstelle (API) von innerhalb einer Cloud-Plattform erfolgen. In mindestens einer Ausführungsform können Modelle des maschinellen Lernens innerhalb der Modellregistrierungsdatenbank 3824 durch Entwickler oder Partner eines Systems, das mit einer API interagiert, hochgeladen, aufgelistet, modifiziert oder gelöscht werden. In mindestens einer Ausführungsform kann eine API Zugriff auf Verfahren bereitstellen, die es Benutzern mit entsprechenden Anmeldeinformationen ermöglichen, Modelle mit Anwendungen zu assoziieren, sodass Modelle als Teil der Ausführung von containerisierten Instanziierungen von Anwendungen ausgeführt werden können.
  • In mindestens einer Ausführungsform kann eine Trainingspipeline 3904 (39) ein Szenario beinhalten, in dem die Einrichtung 3802 ihr eigenes Modell des maschinellen Lernens trainiert oder ein bestehendes Modell des maschinellen Lernen aufweist, das optimiert oder aktualisiert werden muss. In mindestens einer Ausführungsform können Bildgebungsdaten 3808, die durch Bildgebungsvorrichtung(en), Sequenzierungsvorrichtungen und/oder andere Vorrichtungstypen erzeugt wurden, empfangen werden. In mindestens einer Ausführungsform kann, sobald Bildgebungsdaten 3808 empfangen werden, die Klgestützte Annotation 3810 verwendet werden, um beim Erzeugen von Annotationen zu helfen, die den Bildgebungsdaten 3808 entsprechen, die als Ground-Truth-Daten für ein Modell des maschinellen Lernens verwendet werden sollen. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 3810 ein oder mehrere Modelle des maschinellen Lernens (z. B. neuronale Faltungsnetze (CNNs)) beinhalten, die darauf trainiert werden können, Annotationen zu erzeugen, die bestimmten Typen von Bildgebungsdaten 3808 (z. B. von bestimmten Vorrichtungen) und/oder bestimmten Typen von Anomalien in den Bildgebungsdaten 3808 entsprechen. In mindestens einer Ausführungsform können die KI-gestützten Annotationen 3810 dann direkt verwendet oder unter Verwendung eines Annotationswerkzeugs (z. B. von einem Forscher, Kliniker, Arzt, Wissenschaftler usw.) eingestellt oder fein abgestimmt werden, um Ground-Truth-Daten zu erzeugen. In mindestens einer Ausführungsform können in einigen Beispielen beschriftete Klinikdaten 3812 (z. B. Annotationen, die von einem Kliniker, Arzt, Wissenschaftler, Techniker usw. bereitgestellt werden) als Ground-Truth-Daten für das Training eines Modells des maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform können die KI-gestützten Annotationen 3810, beschrifteten Klinikdaten 3812 oder eine Kombination davon als Ground-Truth-Daten für das Training eines Modells des maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes Modell des maschinellen Lernens als Ausgabemodell 3816 bezeichnet werden und durch das Einsatzsystem 3806 verwendet werden, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann die Trainingspipeline 3904 (39) ein Szenario beinhalten, in dem die Einrichtung 3802 ein Modell des maschinellen Lernens zur Verwendung beim Durchführen eines oder mehrerer Verarbeitungs-Tasks für eine oder mehrere Anwendungen in dem Einsatzsystem 3806 benötigt, die Einrichtung 3802 aber möglicherweise derzeit kein derartiges Modell des maschinellen Lernens aufweist (oder möglicherweise kein Modell aufweist, das für derartige Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform kann ein bestehendes Modell des maschinellen Lernens aus der Modellregistrierungsdatenbank 3824 ausgewählt werden. In mindestens einer Ausführungsform kann die Modellregistrierungsdatenbank 3824 Modelle des maschinellen Lernens beinhalten, die zum Durchführen einer Vielfalt von unterschiedlichen Inferenz-Tasks an Bildgebungsdaten trainiert sind. In mindestens einer Ausführungsform können die Modelle des maschinellen Lernens in der Modellregistrierungsdatenbank 3824 an Bildgebungsdaten von anderen Einrichtungen als der Einrichtung 3802 trainiert worden sein (z. B. Einrichtungen, die sich an einem anderen Ort befinden). In mindestens einer Ausführungsform können die Modelle des maschinellen Lernens an Bildgebungsdaten von einem Ort, zwei Orten oder einer beliebigen Anzahl von Orten trainiert worden sein. In mindestens einer Ausführungsform kann das Training an Bildgebungsdaten eines spezifischen Ortes an diesem Ort oder mindestens auf eine Weise stattfinden, welche die Vertraulichkeit der Bildgebungsdaten schützt oder die Übertragung von Bildgebungsdaten außerhalb des Gebäudes einschränkt (z. B. zur Einhaltung von HIPAA-Vorschriften, Datenschutzbestimmungen usw.). In mindestens einer Ausführungsform kann ein Modell des maschinellen Lernens, sobald es an einem Ort trainiert - oder teilweise trainiert - wurde, zur Modellregistrierungsdatenbank 3824 hinzugefügt werden. In mindestens einer Ausführungsform kann ein Modell des maschinellen Lernens dann in einer beliebigen Anzahl von anderen Einrichtungen erneut trainiert oder aktualisiert werden und ein erneut trainiertes oder aktualisiertes Modell kann in der Modellregistrierungsdatenbank 3824 verfügbar gemacht werden. In mindestens einer Ausführungsform kann dann ein Modell des maschinellen Lernens aus der Modellregistrierungsdatenbank 3824 ausgewählt werden - und als Ausgabemodell 3816 bezeichnet werden - und in dem Einsatzsystem 3806 verwendet werden, um einen oder mehrere Verarbeitungs-Tasks für eine oder mehrere Anwendungen eines Einsatzsystems durchzuführen.
  • In mindestens einer Ausführungsform kann die Trainingspipeline 3904 (39) in einem Szenario verwendet werden, das beinhaltet, dass die Einrichtung 3802 ein Modell des maschinellen Lernens zur Verwendung beim Durchführen eines oder mehrerer Verarbeitungs-Tasks für eine oder mehrere Anwendungen in dem Einsatzsystem 3806 erfordert, die Einrichtung 3802 aber möglicherweise derzeit kein derartiges Modell des maschinellen Lernens aufweist (oder möglicherweise kein Modell aufweist, das für derartige Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform könnte ein aus der Modellregistrierungsdatenbank 3824 ausgewähltes Modell des maschinellen Lernens aufgrund von Unterschieden bei den Populationen, genetischen Variationen, der Robustheit der zum Trainieren eines Modells des maschinellen Lernens verwendeten Trainingsdaten, der Verschiedenartigkeit der Anomalien der Trainingsdaten und/oder anderer Probleme mit den Trainingsdaten nicht für die in der Einrichtung 3802 erzeugten Bildgebungsdaten 3808 fein abgestimmt oder optimiert sein. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 3810 verwendet werden, um beim Erzeugen von Annotationen zu helfen, die den Bildgebungsdaten 3808 entsprechen, die als Ground-Truth-Daten für das erneute Trainieren oder Aktualisieren eines Modells des maschinellen Lernens verwendet werden sollen. In mindestens einer Ausführungsform können beschriftete Klinikdaten 3812 (z. B. Annotationen, die von einem Kliniker, Arzt, Wissenschaftler usw. bereitgestellt werden) als Ground-Truth-Daten für das Training eines Modells des maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann das erneute Trainieren oder Aktualisieren eines Modells des maschinellen Lernens als Modelltraining 3814 bezeichnet werden. In mindestens einer Ausführungsform kann das Modelltraining 3814 - z. B. KI-gestützte Annotationen 3810, beschriftete Klinikdaten 3812 oder eine Kombination davon - als Ground-Truth-Daten für das erneute Training oder Aktualisieren eines Modells des maschinellen Lernens verwendet werden.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 3806 Software 3818, Dienste 3820, Hardware 3822 und/oder andere Komponenten, Merkmale und Funktionalitäten beinhalten. In mindestens einer Ausführungsform kann das Einsatzsystem 3806 einen Software-„Stapel“ beinhalten, sodass die Software 3818 auf den Diensten 3820 aufgebaut sein kann und die Dienste 3820 verwenden kann, um einige oder alle Verarbeitungs-Tasks durchzuführen, und die Dienste 3820 und die Software 3818 können auf der Hardware 3822 aufgebaut sein und die Hardware 3822 verwenden, um Verarbeitungs-, Speicher- und/oder andere Rechen-Tasks des Einsatzsystems 3806 auszuführen.
  • In mindestens einer Ausführungsform kann die Software 3818 eine beliebige Anzahl von unterschiedlichen Containern beinhalten, wobei jeder Container eine Instanziierung einer Anwendung ausführen kann. In mindestens einer Ausführungsform kann jede Anwendung eine oder mehrere Verarbeitungs-Tasks in einer weiterentwickelten Verarbeitungs- und Ableitungspipeline durchführen (z. B. Ableitung, Objekterkennung, Merkmalserkennung, Segmentierung, Bildverbesserung, Kalibrierung usw.). In mindestens einer Ausführungsform kann für jeden Typ von Bildgebungsvorrichtung (z. B. CT, MRT, Röntgen, Ultraschall, Sonografie, Echokardiografie usw.), Sequenzierungsvorrichtung, Radiologievorrichtung, Genomikvorrichtung usw. eine beliebige Anzahl von Containern vorhanden sein, die einen Datenverarbeitungs-Task in Bezug auf Bildgebungsdaten 3808 (oder andere Datentypen, wie etwa die hierin beschriebenen), die durch eine Vorrichtung erzeugt werden, durchführen können. In mindestens einer Ausführungsform kann eine weiterentwickelte Verarbeitungs- und Inferenzpipeline auf Grundlage von Auswahlen unterschiedlicher Container definiert werden, die zum Verarbeiten von Bildgebungsdaten 3808 gewünscht oder erforderlich sind, zusätzlich zu Containern, die Bildgebungsdaten zur Verwendung durch jeden Container und/oder zur Verwendung durch die Einrichtung 3802 nach dem Verarbeiten durch eine Pipeline empfangen und konfigurieren (z. B. zur Rückkonvertierung von Ausgaben in einen verwendbaren Datentyp, wie etwa Daten der digitalen Bildgebung und Kommunikation in der Medizin (digital imaging and communications in medicine - DICOM), Daten eines Radiologieinformationssystems (radiology information system - RIS), Daten eines Klinikinformationssystems (clinical information system - CIS), Daten zum Aufruf einer entfernten Prozedur (remote procedure call - RPC), Daten, die im Wesentlichen mit einer Schnittstelle zur Darstellungszustandsübermittlung (representation state transfer - REST) konform sind, Daten, die im Wesentlichen mit einer dateibasierten Schnittstelle konform sind, und/oder Rohdaten, zur Speicherung und Anzeige in der Einrichtung 3802). In mindestens einer Ausführungsform kann eine Kombination von Containern innerhalb der Software 3818 (die z. B. eine Pipeline bilden) als virtuelles Instrument bezeichnet werden (wie hierin detaillierter beschrieben) und ein virtuelles Instrument kann Dienste 3820 und Hardware 3822 ausnutzen, um einige oder alle Verarbeitungs-Tasks von in Containern instanziierten Anwendungen auszuführen.
  • In mindestens einer Ausführungsform kann eine Datenverarbeitungspipeline Eingabedaten (z. B. Bildgebungsdaten 3808) in einem DICOM-, RIS-, CIS-, REST-konformen, RPC-, Rohdaten- und/oder anderen Format als Reaktion auf eine Inferenzanforderung (z. B. eine Anforderung von einem Benutzer des Einsatzsystems 3806, wie etwa einem Kliniker, einem Arzt, einem Radiologen usw.) empfangen. In mindestens einer Ausführungsform können die Eingabedaten ein oder mehrere Bilder, Videos und/oder andere Datendarstellungen darstellen, die von einer oder mehreren Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen, Radiologievorrichtungen, Genomikvorrichtungen und/oder anderen Vorrichtungsarten erzeugt werden. In mindestens einer Ausführungsform können die Daten als Teil der Datenverarbeitungspipeline einer Vorverarbeitung unterzogen werden, um die Daten für die Verarbeitung durch eine oder mehrere Anwendungen vorzubereiten. In mindestens einer Ausführungsform kann eine Nachverarbeitung an einer Ausgabe einer oder mehrerer Ableitungs-Tasks oder anderen Verarbeitungs-Tasks einer Pipeline durchgeführt werden, um Ausgabedaten für eine nächste Anwendung vorzubereiten und/oder um Ausgabedaten für die Übertragung und/oder Verwendung durch einen Benutzer vorzubereiten (z. B. als Reaktion auf eine Ableitungsanforderung). In mindestens einer Ausführungsform können Inferenz-Tasks durch ein oder mehrere Modelle des maschinellen Lernens durchgeführt werden, wie etwa trainierte oder eingesetzte neuronale Netze, die Ausgabemodelle 3816 des Trainingssystems 3804 beinhalten können.
  • In mindestens einer Ausführungsform können die Tasks der Datenverarbeitungspipeline in einem Container(n) eingekapselt sein, die jeweils eine diskrete, voll funktionsfähige Instanziierung einer Anwendung und einer virtualisierten Rechenumgebung darstellen, die dazu in der Lage ist, sich auf Modelle des maschinellen Lernens zu beziehen. In mindestens einer Ausführungsform können Container oder Anwendungen in einem privaten (z. B. zugriffsbeschränkten) Bereich einer Containerregistrierungsdatenbank (hierin detaillierter beschrieben) veröffentlicht werden und trainierte oder eingesetzte Modelle können in der Modellregistrierungsdatenbank 3824 gespeichert und mit einer oder mehreren Anwendungen assoziiert werden. In mindestens einer Ausführungsform können Abbilder von Anwendungen (z. B. Container-Abbilder) in einer Container-Registrierungsdatenbank verfügbar sein und sobald sie von einem Benutzer aus einer Container-Registrierungsdatenbank für den Einsatz in einer Pipeline ausgewählt wurden, kann ein Abbild verwendet werden, um einen Container für eine Instanziierung einer Anwendung zur Verwendung durch das System eines Benutzers zu erzeugen.
  • In mindestens einer Ausführungsform können Entwickler (z. B. Softwareentwickler, Kliniker, Ärzte) Anwendungen (z. B. als Container) zum Durchführen von Bildverarbeitung und/oder Inferenzierung an bereitgestellten Daten entwickeln, veröffentlichen und speichern. In mindestens einer Ausführungsform können die Entwicklung, Veröffentlichung und/oder Speicherung unter Verwendung eines Softwareentwicklungskits (software development kit - SDK) durchgeführt werden, das einem System zugeordnet ist (z. B. um sicherzustellen, dass eine Anwendung und/oder ein entwickelter Container mit einem System konform oder kompatibel ist). In mindestens einer Ausführungsform kann eine Anwendung, die entwickelt wird, lokal (z. B. in einer ersten Einrichtung, an Daten von einer ersten Einrichtung) mit einem SDK geprüft werden, das mindestens einige der Dienste 3820 als System (z. B. System 3900 aus 39) unterstützen kann. Da DICOM-Objekte zwischen einem und Hunderten von Bildern oder anderen Datenarten enthalten können und aufgrund einer Variation der Daten, kann ein Entwickler in mindestens einer Ausführungsform für die Verwaltung (z. B. das Festlegen von Konstrukten für, den Einbau von Vorverarbeitungen in eine Anwendung usw.) der Extraktion und Vorbereitung eingehender DICOM-Daten verantwortlich sein. In mindestens einer Ausführungsform kann eine Anwendung, sobald sie durch das System 3900 validiert wurde (z. B. bezüglich Genauigkeit, Sicherheit, Patientendatenschutz usw.), in einer Containerregistrierungsdatenbank zur Auswahl und/oder Implementation durch einen Benutzer (z. B. ein Krankenhaus, eine Klinik, ein Labor, einen Gesundheitsdienstleister usw.) verfügbar sein, um einen oder mehrere Verarbeitungs-Tasks in Bezug auf Daten in einer Einrichtung (z. B. einer zweiten Einrichtung) eines Benutzers durchzuführen.
  • In mindestens einer Ausführungsform können Entwickler dann Anwendungen oder Container durch ein Netz für den Zugriff und die Verwendung durch Benutzer eines Systems (z. B. des Systems 3900 aus 39) teilen. In mindestens einer Ausführungsform können abgeschlossene und validierte Anwendungen oder Container in einer Containerregistrierungsdatenbank gespeichert werden und damit assoziierte Modelle des maschinellen Lernens in der Modellregistrierungsdatenbank 3824 gespeichert werden. In mindestens einer Ausführungsform kann eine anfordernde Entität (z. B. ein Benutzer in einer medizinischen Einrichtung) - die eine Inferenz- oder Bildverarbeitungsanforderung bereitstellt - eine Containerregistrierungsdatenbank und/oder Modellregistrierungsdatenbank 3824 nach einer Anwendung, einem Container, einem Datensatz, einem Modell des maschinellen Lernens usw. durchsuchen, eine gewünschte Kombination von Elementen zur Aufnahme in die Datenverarbeitungspipeline auswählen und eine Bildverarbeitungsanforderung absenden. In mindestens einer Ausführungsform kann eine Anforderung Eingabedaten (und in einigen Beispielen damit assoziierte Patientendaten) enthalten, die zur Durchführung einer Anforderung notwendig sind, und/oder kann eine Auswahl von Anwendung(en) und/oder Modellen des maschinellen Lernens enthalten, die bei der Verarbeitung einer Anforderung ausgeführt werden sollen. In mindestens einer Ausführungsform kann eine Anforderung dann an eine oder mehrere Komponenten des Einsatzsystems 3806 (z. B. eine Cloud) übergeben werden, um die Verarbeitung der Datenverarbeitungspipeline durchzuführen. In mindestens einer Ausführungsform kann die Verarbeitung durch das Einsatzsystem 3806 die Referenzierung ausgewählter Elemente (z. B. Anwendungen, Container, Modelle usw.) aus einer Containerregistrierungsdatenbank und/oder Modellregistrierungsdatenbank 3824 beinhalten. In mindestens einer Ausführungsform können, sobald Ergebnisse von einer Pipeline erzeugt wurden, die Ergebnisse an einen Benutzer als Referenz zurückgegeben werden (z. B. zur Ansicht in einer Ansichtanwendungssuite, die auf einer lokalen Workstation oder einem lokalen Endgerät vor Ort ausgeführt wird). In mindestens einer Ausführungsform kann ein Radiologe Ergebnisse von einer Datenverarbeitungspipeline empfangen, die eine beliebige Anzahl von Anwendungen und/oder Containern enthält, wobei die Ergebnisse die Erkennung von Anomalien in Röntgenbildern, CT-Scans, MRTs usw. enthalten können.
  • In mindestens einer Ausführungsform können zur Unterstützung der Verarbeitung oder Ausführung von Anwendungen oder Containern in Pipelines die Dienste 3820 ausgenutzt werden. In mindestens einer Ausführungsform können die Dienste 3820 Rechendienste, Dienste für künstliche Intelligenz (Kl), Visualisierungsdienste und/oder andere Diensttypen beinhalten. In mindestens einer Ausführungsform können die Dienste 3820 eine Funktionalität bereitstellen, die eine oder mehrere Anwendungen in der Software 3818 gemeinsam haben, sodass die Funktionalität zu einem Dienst abstrahiert werden kann, der durch Anwendungen aufgerufen oder ausgenutzt werden kann. In mindestens einer Ausführungsform kann die durch die Dienste 3820 bereitgestellte Funktionalität dynamisch und effizienter laufen, während sie ebenfalls gut skalierbar ist, indem es Anwendungen erlaubt wird, Daten parallel zu verarbeiten (z. B. unter Verwendung einer Parallelrechenplattform 3930 (39)). Anstatt dass jede Anwendung, die eine gleiche Funktionalität teilt, die durch einen Dienst 3820 angeboten wird, eine entsprechende Instanz des Dienstes 3820 aufweisen muss, kann der Dienst 3820 in mindestens einer Ausführungsform von verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform können die Dienste einen Ableitungsserver oder eine Ableitungs-Engine beinhalten, der/die als nicht einschränkende Beispiele für die Ausführung von Erkennungs- oder Segmentierungs-Tasks verwendet werden kann. In mindestens einer Ausführungsform kann ein Modelltrainingsdienst beinhaltet sein, der die Fähigkeit bereitstellen kann, maschinelle Lernmodelle zu trainieren und/oder erneut zu trainieren. In mindestens einer Ausführungsform kann ferner ein Datenerweiterungsdienst beinhaltet sein, der die Extraktion, Größenänderung, Skalierung und/oder andere Erweiterung von GPU-beschleunigten Daten (z. B. DICOM-Daten, RIS-Daten, CIS-Daten, REST-konformen Daten, RPC-Daten, Rohdaten usw.) bereitstellen kann. In mindestens einer Ausführungsform kann ein Visualisierungsdienst verwendet werden, der Bildrenderingeffekte - wie etwa Strahlverfolgung, Rasterung, Entrauschen, Schärfung usw. - hinzufügen kann, um zweidimensionale (2D) und/oder dreidimensionale (3D) Modelle realistischer zu gestalten. In mindestens einer Ausführungsform können Dienste für virtuelle Instrumente enthalten sein, die Strahlformung, Segmentierung, Ableitung, Bildgebung und/oder Unterstützung für andere Anwendungen innerhalb von Pipelines virtueller Instrumente bereitstellen.
  • In mindestens einer Ausführungsform, in der ein Dienst 3820 einen KI-Dienst (z. B. einen Inferenzdienst) beinhaltet, können ein oder mehrere Modelle des maschinellen Lernens, die mit einer Anwendung zur Anomaliedetektion (z. B. Tumoren, Wachstumsauffälligkeiten, Narbenbildung usw.) assoziiert sind, ausgeführt werden, indem ein Inferenzdienst (z. B. ein Inferenzserver) aufgerufen wird (z. B. als API-Aufruf), um Modell(e) des maschinellen Lernens oder deren Verarbeitung als Teil der Anwendungsausführung auszuführen. In mindestens einer Ausführungsform, in der eine andere Anwendung ein oder mehrere Modelle des maschinellen Lernens für Segmentierungs-Tasks enthält, kann eine Anwendung einen Ableitungsdienst aufrufen, um Modelle des maschinellen Lernens zur Durchführung eines oder mehrerer mit Segmentierungs-Tasks assoziierten Verarbeitungsvorgängen auszuführen. In mindestens einer Ausführungsform kann die Software 3818, die eine weiterentwickelte Verarbeitungs- und Inferenzpipeline implementiert, die eine Segmentierungsanwendung und eine Anomaliedetektionsanwendung beinhaltet, gestrafft werden, da jede Anwendung einen gleichen Inferenzdienst zum Durchführen eines oder mehrerer Inferenz-Tasks aufrufen kann.
  • In mindestens einer Ausführungsform kann die Hardware 3822 GPUs, CPUs, Grafikkarten, ein Kl-/Deep-Learning-System (z. B. einen Kl-Supercomputer wie etwa das DGX-Supercomputersystem von NVIDIA), eine Cloud-Plattform oder eine Kombination davon beinhalten. In mindestens einer Ausführungsform können unterschiedliche Typen von Hardware 3822 verwendet werden, um eine effiziente, speziell entwickelte Unterstützung für Software 3818 und Dienste 3820 in dem Einsatzsystem 3806 bereitzustellen. In mindestens einer Ausführungsform kann die Verwendung von GPU-Verarbeitung für die lokale Verarbeitung (z. B. in der Einrichtung 3802), innerhalb eines Kl/Deep-Learning-Systems, in einem Cloud-System und/oder in anderen Verarbeitungskomponenten des Einsatzsystems 3806 implementiert werden, um die Effizienz, Genauigkeit und Wirksamkeit von Bildverarbeitung, Bildrekonstruktion, Segmentierung, MRT-Untersuchungen, Schlaganfall- oder Herzinfarktdetektion (z. B. in Echtzeit), Bildqualität beim Rendern usw. zu verbessern. In mindestens einer Ausführungsform kann eine Einrichtung Bildgebungsvorrichtungen, Genomikvorrichtungen, Sequenzierungsvorrichtungen und/oder andere Vorrichtungstypen in den Räumlichkeiten beinhalten, die GPUs ausnutzen können, um Bildgebungsdaten zu erzeugen, die für die Anatomie eines Probanden repräsentativ sind.
  • In mindestens einer Ausführungsform können die Software 3818 und/oder die Dienste 3820 als nicht einschränkende Beispiele für die GPU-Verarbeitung in Bezug auf Deep Learning, maschinelles Lernen und/oder Datenverarbeitung mit hoher Rechenleistung optimiert sein. In mindestens einer Ausführungsform kann mindestens ein Teil der Rechenumgebung des Einsatzsystems 3806 und/oder des Trainingssystems 3804 in einem Rechenzentrum auf einem oder mehreren Supercomputern oder Computersystemen mit hoher Rechenleistung mit GPU-optimierter Software (z. B. Hardware- und Software-Kombination des DGX-Systems von NVIDIA) ausgeführt werden. In mindestens einer Ausführungsform können Rechenzentren mit HIPAA-Bestimmungen konform sein, sodass der Empfang, die Verarbeitung und die Übertragung von Bildgebungsdaten und/oder anderen Patientendaten in Bezug auf den Schutz von Patientendaten sicher gehandhabt werden. In mindestens einer Ausführungsform kann die Hardware 3822 eine beliebige Anzahl von GPUs beinhalten, die zur parallelen Verarbeitung von Daten, wie hierin beschrieben, aufgerufen werden können. In mindestens einer Ausführungsform kann die Cloud-Plattform ferner GPU-Verarbeitung für die GPU-optimierte Ausführung von Deep-Learning-Tasks, Tasks des maschinellen Lernens oder anderen Rechen-Tasks beinhalten. In mindestens einer Ausführungsform kann die Cloud-Plattform (z. B. NGC von NVIDIA) unter Verwendung von KI-/Deep-Learning-Supercomputer(n) und/oder GPU-optimierter Software (z. B. wie auf DGX-Systemen von NVIDIA bereitgestellt) als Hardware-Abstraktions- und -Skalierungsplattform ausgeführt werden. In mindestens einer Ausführungsform kann die Cloud-Plattform ein Anwendungscontainer-Cluster-System oder Orchestrierungssystem (z. B. KUBERNETES) auf mehreren GPUs integrieren, um nahtlose Skalierung und Belastungsausgleich zu ermöglichen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 39 ist eine Systemdarstellung für ein beispielhaftes System 3900 zum Erzeugen und Einsetzen einer Bildgebungseinsatzpipeline gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 3900 verwendet werden, um den Prozess 3800 aus 38 und/oder andere Prozesse, einschließlich weiterentwickelter Verarbeitungs- und Inferenzpipelines, zu implementieren. In mindestens einer Ausführungsform kann das System 3900 das Trainingssystem 3804 und das Einsatzsystem 3806 beinhalten. In mindestens einer Ausführungsform können das Trainingssystem 3804 und das Einsatzsystem 3806 unter Verwendung von Software 3818, Diensten 3820 und/oder Hardware 3822, wie hierin beschrieben, implementiert werden.
  • In mindestens einer Ausführungsform kann das System 3900 (z. B. das Trainingssystem 3804 und/oder das Einsatzsystem 3806) in einer Cloud-Computing-Umgebung implementiert sein (z. B. unter Verwendung der Cloud 3926). In mindestens einer Ausführungsform kann das System 3900 lokal in Bezug auf eine Einrichtung des Gesundheitswesens oder als Kombination aus sowohl Cloud- als auch lokalen Rechenressourcen implementiert werden. In mindestens einer Ausführungsform können in Ausführungsformen, in denen Cloud Computing implementiert ist, Patientendaten von einer oder mehreren Komponenten des Systems 3900 getrennt oder nicht durch diese verarbeitet werden, was die Verarbeitung nicht konform mit HIPAA- und/oder anderen Vorschriften oder Gesetzen zur Datenhandhabung und zum Datenschutz machen würde. In mindestens einer Ausführungsform kann der Zugriff auf die APIs in der Cloud 3926 durch erlassene Sicherheitsmaßnahmen oder -protokolle auf autorisierte Benutzer beschränkt sein. In mindestens einer Ausführungsform kann ein Sicherheitsprotokoll Web-Token beinhalten, die von einem Authentifizierungsdienst (z. B. AuthN, AuthZ, Gluecon usw.) signiert sein können und eine entsprechende Autorisierung tragen können. In mindestens einer Ausführungsform können APIs von virtuellen Instrumenten (hierin beschrieben) oder anderen Instanziierungen des Systems 3900 auf einen Satz von öffentlichen IPs beschränkt sein, die für die Interaktion sicherheitsüberprüft oder autorisiert wurden.
  • In mindestens einer Ausführungsform können verschiedene Komponenten des Systems 3900 unter Verwendung beliebiger einer Vielfalt von unterschiedlichen Netztypen, einschließlich, aber nicht beschränkt auf, lokaler Netze (LANs) und/oder Weitverkehrsnetze (WANs), über drahtgebundene und/oder drahtlose Kommunikationsprotokolle miteinander kommunizieren. In mindestens einer Ausführungsform kann die Kommunikation zwischen Einrichtungen und Komponenten des Systems 3900 (z. B. zum Übertragen von Inferenzanforderungen, zum Empfangen von Ergebnissen von Inferenzanforderungen usw.) über einen Datenbus oder Datenbusse, drahtlose Datenprotokolle (Wi-Fi), drahtgebundene Datenprotokolle (z. B. Ethernet) usw. kommuniziert werden.
  • In mindestens einer Ausführungsform kann das Trainingssystem 3804 Trainingspipelines 3904 ausführen, die denjenigen ähnlich sind, die hierin in Bezug auf 38 beschrieben sind. In mindestens einer Ausführungsform, in der ein oder mehrere Modelle des maschinellen Lernens in Einsatzpipelines 3910 durch das Einsatzsystem 3806 verwendet werden sollen, können Trainingspipelines 3904 verwendet werden, um ein oder mehrere (z. B. vorab trainierte) Modelle zu trainieren oder erneut zu trainieren und/oder eines oder mehrere der vorab trainierten Modelle 3906 zu implementieren (z. B. ohne eine Notwendigkeit eines erneuten Trainings oder einer Aktualisierung). In mindestens einer Ausführungsform können als Ergebnis der Trainingspipelines 3904 Ausgabemodell(e) 3816 erzeugt werden. In mindestens einer Ausführungsform können die Trainingspipelines 3904 eine beliebige Anzahl von Verarbeitungsschritten beinhalten, zum Beispiel, aber nicht beschränkt auf, die Konvertierung oder Anpassung von Bildgebungsdaten (oder anderen Eingabedaten) (z. B. unter Verwendung eines DICOM-Adapters 3902A zum Konvertieren von DICOM-Bildern in ein anderes Format, das für die Verarbeitung durch jeweilige Modelle des maschinellen Lernens geeignet ist, wie etwa das Format der Neuroimaging Informatics Technology Initiative (NlfTI)), KI-gestützte Annotation 3810, Beschriftung oder Annotation von Bildgebungsdaten 3808, um beschriftete Klinikdaten 3812 zu erzeugen, Modellauswahl aus einer Modellregistrierungsdatenbank, Modelltraining 3814, Training, erneutes Training oder Aktualisieren von Modellen und/oder andere Verarbeitungsschritte. In mindestens einer Ausführungsform können für unterschiedliche Modelle des maschinellen Lernens, die durch das Einsatzsystem 3806 verwendet werden, unterschiedliche Trainingspipelines 3904 verwendet werden. In mindestens einer Ausführungsform kann für ein erstes Modell des maschinellen Lernens eine Trainingspipeline 3904 verwendet werden, die einem ersten Beispiel ähnlich ist, das in Bezug auf 38 beschrieben ist, für ein zweites Modell des maschinellen Lernens eine Trainingspipeline 3904 verwendet werden, die einem zweiten Beispiel ähnlich ist, das in Bezug auf 38 beschrieben ist, und für ein drittes Modell des maschinelles Lernens eine Trainingspipeline 3904 verwendet werden, die einem dritten Beispiel ähnlich ist, das in Bezug auf 38 beschrieben ist. In mindestens einer Ausführungsform kann eine beliebige Kombination von Tasks innerhalb des Trainingssystems 3804 verwendet werden, in Abhängigkeit davon, was für jedes jeweilige Modell des maschinellen Lernens erforderlich ist. In mindestens einer Ausführungsform können eines oder mehrere der Modelle des maschinellen Lernens bereits trainiert und einsatzbereit sein, sodass die Modelle des maschinellen Lernens möglicherweise keiner Verarbeitung durch das Trainingssystem 3804 unterzogen werden und durch das Einsatzsystem 3806 implementiert werden können.
  • In mindestens einer Ausführungsform können die Ausgabemodell(e) 3816 und/oder die vorab trainierte(n) Modell(e) 3906 in Abhängigkeit von der Implementation oder Ausführungsform beliebige Typen von Modellen des maschinellen Lernens beinhalten. In mindestens einer Ausführungsform und ohne Einschränkung können durch das System 3900 verwendete Modelle des maschinellen Lernens Modell(e) des maschinellen Lernens unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäumen, Stützvektormaschinen (support vector machines - SVM), naivem Bayes-Klassifikator, k-nächstem Nachbarn (k-nearest neighbor - Knn), k-Means-Clustering, Random Forest, Dimensionsreduktionsalgorithmen, Gradientenverstärkungsalgorithmen, neuronalen Netzen (z. B. Autocodierern, faltenden, rekurrenten, Perzeptronen, langem Kurzzeitgedächtnis (Long/Short Term Memory - LSTM), Hopfield, Boltzmann, Deep Belief, entfaltenden, erzeugenden gegnerischen, Flüssigkeitszustandsmaschine usw.) und/oder andere Typen von Modellen des maschinellen Lernens beinhalten.
  • In mindestens einer Ausführungsform können die Trainingspipelines 3904 KI-gestützte Annotation beinhalten, wie hierin in Bezug auf mindestens 42B detaillierter beschrieben. In mindestens einer Ausführungsform können beschriftete Klinikdaten 3812 (z. B. herkömmliche Annotation) durch eine beliebige Anzahl von Techniken erzeugt werden. In mindestens einer Ausführungsform können Markierungen oder andere Annotationen in einem Zeichenprogramm (z. B. einem Annotationsprogramm), einem Programm zur computergestützten Konstruktion (Computer Aided Design - CAD), einem Markierungsprogramm, einer anderen Art von Programm, das zur Erzeugung von Annotationen oder Markierungen für Ground Truth geeignet ist, erzeugt werden und/oder in einigen Beispielen von Hand gezeichnet werden. In mindestens einer Ausführungsform können die Ground-Truth-Daten synthetisch produziert (z. B. aus Computermodellen oder Renderings), real produziert (z. B. aus Daten der realen Welt konstruiert und produziert), maschinell automatisiert (z. B. unter Verwendung von Merkmalsanalyse und Lernen, um Merkmale aus den Daten zu extrahieren und dann Markierungen zu erzeugen), von Menschen annotiert (z. B. definiert ein Markierer oder Annotationsexperte die Position der Markierungen) und/oder eine Kombination davon sein. In mindestens einer Ausführungsform können für jede Instanz der Bildgebungsdaten 3808 (oder eines anderen Datentyps, der durch Modelle des maschinellen Lernens verwendet wird) entsprechende Ground-Truth-Daten vorhanden sein, die durch das Trainingssystem 3804 erzeugt werden. In mindestens einer Ausführungsform kann die KI-gestützte Annotation als Teil der Einsatzpipelines 3910 durchgeführt werden; entweder zusätzlich zu oder anstelle der KI-gestützten Annotation, die in den Trainingspipelines 3904 enthalten ist. In mindestens einer Ausführungsform kann das System 3900 eine mehrschichtige Plattform beinhalten, die eine Software-Schicht (z. B. Software 3818) von Diagnoseanwendungen (oder anderen Anwendungstypen) beinhalten kann, die eine oder mehrere medizinische Bildgebungs- und Diagnosefunktionen durchführen kann. In mindestens einer Ausführungsform kann das System 3900 kommunikativ an (z. B. über verschlüsselte Verknüpfungen) PACS-Servernetze einer oder mehrerer Einrichtungen gekoppelt sein. In mindestens einer Ausführungsform kann das System 3900 so konfiguriert sein, dass es auf Daten (z. B. DICOM-Daten, RIS-Daten, Rohdaten, CIS-Daten, REST-konforme Daten, RPC-Daten, Rohdaten usw.) von PACS-Servern zugreift und diese referenziert (z. B. über einen DICOM-Adapter 3902 oder einen Adapter für einen anderen Datentyp, wie etwa RIS, CIS, REST-konform, RPC, Rohdaten usw.), um Operationen durchzuführen, wie etwa Trainieren von Modellen des maschinellen Lernens, Einsetzen von Modellen des maschinellen Lernens, Bildverarbeitung, Inferenzieren und/oder andere Operationen.
  • In mindestens einer Ausführungsform kann eine Software-Schicht als sichere, verschlüsselte und/oder authentifizierte API implementiert sein, durch die Anwendungen oder Container aus einer externen Umgebung(en) (z. B. Einrichtung 3802) ausgewählt (z. B. aufgerufen) werden können. In mindestens einer Ausführungsform können Anwendungen dann einen oder mehrere Dienste 3820 aufrufen oder ausführen, um Rechen-, Kl- oder Visualisierungs-Tasks durchzuführen, die mit jeweiligen Anwendungen assoziiert sind, und die Software 3818 und/oder die Dienste 3820 können die Hardware 3822 ausnutzen, um Verarbeitungs-Tasks auf effektive und effiziente Weise durchzuführen.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 3806 Einsatzpipelines 3910 ausführen. In mindestens einer Ausführungsform können Einsatzpipelines 3910 eine beliebige Anzahl von Anwendungen beinhalten, die sequenziell, nicht sequenziell oder auf andere Weise auf Bildgebungsdaten (und/oder andere Datentypen) angewendet werden können, die durch Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen, Genomikvorrichtungen usw. erzeugt werden - einschließlich Kl-gestützter Annotation, wie vorstehend beschrieben. In mindestens einer Ausführungsform, wie hierin beschrieben, kann eine Einsatzpipeline 3910 für eine einzelne Vorrichtung als virtuelles Instrument für eine Vorrichtung bezeichnet werden (z. B. ein virtuelles Ultraschallinstrument, ein virtuelles CT-Scan-Instrument, ein virtuelles Sequenzierungsinstrument usw.). In mindestens einer Ausführungsform kann für eine einzelne Vorrichtung in Abhängigkeit von Informationen, die von Daten gewünscht sind, die durch eine Vorrichtung erzeugt wurden, mehr als eine Einsatzpipeline 3910 vorhanden sein. Wenn Detektionen von Anomalien anhand einer MRT-Maschine gewünscht sind, kann in mindestens einer Ausführungsform eine erste Einsatzpipeline 3910 vorhanden sein, und wenn Bildverbesserung anhand einer Ausgabe einer MRT-Maschine gewünscht ist, kann eine zweite Einsatzpipeline 3910 vorhanden sein.
  • In mindestens einer Ausführungsform können für die Einsatzpipelines 3910 verfügbare Anwendungen eine beliebige Anwendung beinhalten, die zum Durchführen von Verarbeitungs-Tasks an Bildgebungsdaten oder anderen Daten von Vorrichtungen verwendet werden kann. In mindestens einer Ausführungsform können unterschiedliche Anwendungen für die Bildverbesserung, Segmentierung, Rekonstruktion, Anomalieerkennung, Objekterkennung, Merkmalserkennung, Behandlungsplanung, Dosimetrie, Strahlenplanung (oder andere Strahlenbehandlungsprozeduren) und/oder andere Analyse-, Bildverarbeitungs- oder Ableitungs-Tasks zuständig sein. In mindestens einer Ausführungsform kann das Einsatzsystem 3806 Konstrukte für jede der Anwendungen definieren, sodass die Benutzer des Einsatzsystems 3806 (z. B. medizinische Einrichtungen, Labors, Kliniken usw.) die Konstrukte verstehen und die Anwendungen für die Implementation innerhalb ihrer jeweiligen Einrichtung anpassen können. In mindestens einer Ausführungsform kann eine Anwendung zur Bildrekonstruktion für die Aufnahme in die Einsatzpipeline 3910 ausgewählt werden, doch der durch eine Bildgebungsvorrichtung erzeugte Datentyp kann sich von einem innerhalb einer Anwendung verwendeten Datentyp unterscheiden. In mindestens einer Ausführungsform kann der DICOM-Adapter 3902B (und/oder ein DICOM-Lesegerät) oder ein Adapter oder ein Lesegerät für einen anderen Datentyp (z. B. RIS, CIS, REST-konform, RPC, Rohdaten usw.) innerhalb der Einsatzpipeline 3910 verwendet werden, um Daten in eine Form zu konvertieren, die durch eine Anwendung innerhalb des Einsatzsystems 3806 verwendet werden kann. In mindestens einer Ausführungsform kann der Zugriff auf DICOM-, RIS-, CIS-, REST-konforme, RPC-, Rohdaten- und/oder andere Datenartbibliotheken akkumuliert und vorverarbeitet werden, einschließlich der Decodierung, Extraktion und/oder Durchführung von Faltungen, Farbkorrekturen, Schärfe-, Gamma- und/oder anderen Augmentationen der Daten. In mindestens einer Ausführungsform können DICOM-, RIS-, CIS-, REST-konforme, RPC- und/oder Rohdaten ungeordnet sein und kann ein Vorlauf ausgeführt werden, um gesammelte Daten zu organisieren oder zu sortieren. Da verschiedene Anwendungen in mindestens einer Ausführungsform Bildoperationen gemeinsam nutzen können, kann in einigen Ausführungsformen eine Datenaugmentationsbibliothek (z. B. als einer der Dienste 3820) verwendet werden, um diese Operationen zu beschleunigen. In mindestens einer Ausführungsform kann zur Vermeidung von Engpässen herkömmlicher Verarbeitungsansätze, die sich auf CPU-Verarbeitung stützen, die Parallelrechenplattform 3930 zur GPU-Beschleunigung dieser Verarbeitungs-Tasks verwendet werden.
  • In mindestens einer Ausführungsform kann eine Bildrekonstruktionsanwendung einen Verarbeitungs-Task beinhalten, der die Verwendung eines Modells des maschinellen Lernens beinhaltet. In mindestens einer Ausführungsform kann ein Benutzer ein eigenes Modell des maschinellen Lernens verwenden wollen oder ein Modell des maschinellen Lernens aus der Modellregistrierungsdatenbank 3824 auswählen wollen. In mindestens einer Ausführungsform kann ein Benutzer sein eigenes Modell des maschinellen Lernens implementieren oder ein Modell des maschinellen Lernens zur Aufnahme in eine Anwendung zur Durchführung einer Verarbeitungs-Task auswählen. In mindestens einer Ausführungsform können die Anwendungen auswählbar und anpassbar sein und durch die Definition von Konstrukten von Anwendungen werden der Einsatz und die Implementation von Anwendungen für einen bestimmten Benutzer als eine nahtlosere Benutzererfahrung dargestellt. In mindestens einer Ausführungsform können Einsatzpipelines 3910 durch Ausnutzen anderer Merkmale des Systems 3900 - wie etwa der Dienste 3820 und der Hardware 3822 - noch benutzerfreundlicher sein, eine einfachere Integration bereitstellen und genauere, effizientere und raschere Ergebnisse produzieren.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 3806 eine Benutzerschnittstelle 3914 (z. B. eine grafische Benutzerschnittstelle, eine Webschnittstelle usw.) beinhalten, die verwendet werden kann, um Anwendungen für die Aufnahme in die Einsatzpipeline(s) 3910 auszuwählen, Anwendungen anzuordnen, Anwendungen oder Parameter oder Konstrukte davon zu modifizieren oder zu ändern, die Einsatzpipeline(s) 3910 während des Setups und/oder des Einsatzes zu verwenden und damit zu interagieren und/oder anderweitig mit dem Einsatzsystem 3806 zu interagieren. In mindestens einer Ausführungsform, obwohl nicht in Bezug auf das Trainingssystem 3804 veranschaulicht, kann die Benutzerschnittstelle 3914 (oder eine andere Benutzerschnittstelle) zum Auswählen von Modellen für die Verwendung in dem Einsatzsystem 3806, zum Auswählen von Modellen für das Training oder das erneute Training in dem Trainingssystem 3804 und/oder zum anderweitigen Interagieren mit dem Trainingssystem 3804 verwendet werden.
  • In mindestens einer Ausführungsform kann der Pipelineverwalter 3912 zusätzlich zu einem Anwendungsorchestrierungssystem 3928 verwendet werden, um die Interaktion zwischen den Anwendungen oder Containern der Einsatzpipeline(s) 3910 und den Diensten 3820 und/oder der Hardware 3822 zu verwalten. In mindestens einer Ausführungsform kann der Pipelineverwalter 3912 so konfiguriert sein, dass er Interaktionen von Anwendung zu Anwendung, von Anwendung zu Dienst 3820 und/oder von Anwendung oder Dienst zu Hardware 3822 erleichtert. Obwohl er der Veranschaulichung nach in der Software 3818 enthalten ist, soll dies in mindestens einer Ausführungsform nicht einschränkend sein und in einigen Beispielen (wie z. B. in 40 veranschaulicht) kann der Pipelineverwalter 3912 in den Diensten 3820 enthalten sein. In mindestens einer Ausführungsform kann das Anwendungsorchestrierungssystem 3928 (z. B. Kubernetes, DOCKER usw.) ein Container-Orchestrierungssystem beinhalten, das Anwendungen zu Containern als logische Einheiten zur Koordination, Verwaltung, Skalierung und zum Einsatz gruppieren kann. In mindestens einer Ausführungsform kann durch das Assoziieren von Anwendungen aus den Einsatzpipeline(s) 3910 (z. B. einer Rekonstruktionsanwendung, einer Segmentierungsanwendung usw.) mit einzelnen Containern jede Anwendung in einer in sich geschlossenen Umgebung (z. B. auf Kernel-Level) ausgeführt werden, um die Geschwindigkeit und Effizienz zu erhöhen.
  • In mindestens einer Ausführungsform kann jede Anwendung und/oder jeder Container (oder ein Abbild davon) einzeln entwickelt, modifiziert und eingesetzt werden (z. B. kann ein erster Benutzer oder Entwickler eine erste Anwendung entwickeln, modifizieren und einsetzen und ein zweiter Benutzer oder Entwickler eine zweite Anwendung separat von einem ersten Benutzer oder Entwickler entwickeln, modifizieren und einsetzen), was es ermöglichen kann, sich auf einen Task einer einzelnen Anwendung und/oder Container(n) zu fokussieren und zu konzentrieren, ohne durch Tasks einer anderen Anwendung(en) oder eines anderen Container(n) behindert zu werden. In mindestens einer Ausführungsform kann die Kommunikation und Kooperation zwischen unterschiedlichen Containern oder Anwendungen durch den Pipelineverwalter 3912 und das Anwendungsorchestrierungssystem 3928 unterstützt werden. In mindestens einer Ausführungsform kann, solange eine erwartete Eingabe und/oder Ausgabe jedes Containers oder jeder Anwendung einem System bekannt ist (z. B. auf Grundlage von Konstrukten von Anwendungen oder Containern), das Anwendungsorchestrierungssystem 3928 und/oder der Pipelineverwalter 3912 die Kommunikation unter und zwischen jedem der Anwendungen oder Container sowie die gemeinsame Nutzung von Ressourcen unter und zwischen diesen erleichtern. Da eine oder mehrere Anwendungen oder Container in den Einsatzpipeline(s) 3910 gleiche Dienste und Ressourcen gemeinsam nutzen können, kann das Anwendungsorchestrierungssystem 3928 in mindestens einer Ausführungsform die gemeinsame Nutzung von Diensten oder Ressourcen zwischen und unter verschiedenen Anwendungen oder Containern orchestrieren, deren Last verteilen und bestimmen. In mindestens einer Ausführungsform kann ein Scheduler verwendet werden, um den Ressourcenbedarf von Anwendungen oder Containern, die aktuelle Nutzung oder geplante Nutzung dieser Ressourcen und die Ressourcenverfügbarkeit zu verfolgen. In mindestens einer Ausführungsform kann ein Scheduler somit Ressourcen unterschiedlichen Anwendungen zuweisen und Ressourcen zwischen und unter Anwendungen im Hinblick auf Bedarf und Verfügbarkeit eines Systems verteilen. In einigen Beispielen kann ein Scheduler (und/oder eine andere Komponente des Anwendungsorchestrierungssystems 3928) die Ressourcenverfügbarkeit und - verteilung auf Grundlage von Beschränkungen bestimmen, die einem System auferlegt werden (z. B. Benutzerbeschränkungen), wie etwa Dienstgüte (QoS), Dringlichkeit des Bedarfs an Datenausgaben (um z. B. zu bestimmen, ob Echtzeitverarbeitung oder verzögerte Verarbeitung ausgeführt werden soll) usw.
  • In mindestens einer Ausführungsform können die Dienste 3820, die durch Anwendungen oder Container in dem Einsatzsystem 3806 ausgenutzt und gemeinsam genutzt werden, Rechendienste 3916, KI-Dienste 3918, Visualisierungsdienste 3920 und/oder andere Diensttypen beinhalten. In mindestens einer Ausführungsform können Anwendungen einen oder mehrere der Dienste 3820 aufrufen (z. B. ausführen), um Verarbeitungsoperationen für eine Anwendung durchzuführen. In mindestens einer Ausführungsform können die Rechendienste 3916 durch Anwendungen ausgenutzt werden, um Superrechnen oder andere Tasks des Hochleistungsrechnens (HPC) durchzuführen. In mindestens einer Ausführungsform können die Rechendienst(e) 3916 ausgenutzt werden, um Parallelverarbeitung (z. B. unter Verwendung einer Parallelrechenplattform 3930) zum Verarbeiten von Daten durch eine oder mehrere Anwendungen und/oder einen oder mehrere Tasks einer einzelnen Anwendung im Wesentlichen simultan durchzuführen. In mindestens einer Ausführungsform kann die Parallelrechenplattform 3930 (z. B. CUDA von NVIDIA) Universaldatenverarbeitung auf GPUs (GPGPU) ermöglichen (z. B. GPUs 3922). In mindestens einer Ausführungsform kann eine Software-Schicht der Parallelrechenplattform 3930 Zugriff auf virtuelle Anweisungssätze und Parallelberechnungselemente von GPUs zur Ausführung von Rechenkernels bereitstellen. In mindestens einer Ausführungsform kann die Parallelrechenplattform 3930 Speicher beinhalten und in einigen Ausführungsformen kann ein Speicher zwischen und unter mehreren Containern und/oder zwischen und unter unterschiedlichen Verarbeitungs-Tasks innerhalb eines einzelnen Containers gemeinsam genutzt werden. In mindestens einer Ausführungsform können Aufrufe für Interprozesskommunikation (inter-process communication - IPC) für mehrere Container und/oder für mehrere Prozesse innerhalb eines Containers erzeugt werden, um gleiche Daten aus einem gemeinsam genutzten Speichersegment der Parallelrechenplattform 3930 zu verwenden (z. B., wenn mehrere unterschiedliche Stufen einer Anwendung oder mehrere Anwendungen gleiche Informationen verarbeiten). In mindestens einer Ausführungsform können dieselben Daten an demselben Speicherort für eine beliebige Anzahl von Verarbeitungs-Tasks verwendet werden (z. B. zur selben Zeit, zu unterschiedlichen Zeiten usw.), anstatt eine Kopie der Daten zu erstellen und die Daten an unterschiedliche Orte im Speicher zu verschieben (z. B. ein Lese-/Schreibvorgang). In mindestens einer Ausführungsform können, da Daten verwendet werden, um neue Daten als Ergebnis der Verarbeitung zu erzeugen, diese Informationen über einen neuen Ort von Daten gespeichert und von verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform kann ein Ort der Daten und ein Ort von aktualisierten oder modifizierten Daten Teil einer Definition sein, wie Nutzdaten innerhalb von Containern zu verstehen sind.
  • In mindestens einer Ausführungsform können die KI-Dienste 3918 ausgenutzt werden, um Inferenzdienste zum Ausführen von Modell(en) des maschinellen Lernens durchzuführen, die mit Anwendungen assoziiert sind (z. B. mit dem Durchführen eines oder mehrerer Verarbeitungs-Tasks einer Anwendung beauftragt). In mindestens einer Ausführungsform können die KI-Dienste 3918 das KI-System 3924 ausnutzen, um Modell(e) des maschinellen Lernens (z. B. neuronale Netze wie etwa CNNs) für Segmentierung, Rekonstruktion, Objektdetektion, Merkmalsdetektion, Klassifizierung und/oder andere Inferenz-Tasks auszuführen. In mindestens einer Ausführungsform können die Anwendungen der Einsatzpipeline(s) 3910 eines oder mehrere der Ausgabemodelle 3816 aus dem Trainingssystem 3804 und/oder andere Modelle der Anwendungen verwenden, um Inferenz an Bildgebungsdaten (z. B. DICOM-Daten, RIS-Daten, CIS-Daten, REST-konformen Daten, RPC-Daten, Rohdaten usw.) durchzuführen. In mindestens einer Ausführungsform können zwei oder mehr Beispiele für das Inferenzieren unter Verwendung des Anwendungsorchestrierungssystems 3928 (z. B. eines Scheduler) verfügbar sein. In mindestens einer Ausführungsform kann eine erste Kategorie einen Pfad mit hoher Priorität/geringer Latenz beinhalten, der höhere Service Level Agreements erreichen kann, z. B. für die Durchführung von Ableitungen bei dringenden Anforderungen während eines Notfalls oder für einen Radiologen während der Diagnose. In mindestens einer Ausführungsform kann eine zweite Kategorie einen Pfad mit Standardpriorität beinhalten, der für Anfragen verwendet werden kann, die nicht dringend sind oder bei denen die Analyse zu einem späteren Zeitpunkt durchgeführt werden kann. In mindestens einer Ausführungsform kann das Anwendungsorchestrierungssystem 3928 Ressourcen (z. B. Dienste 3820 und/oder Hardware 3822) auf Grundlage von Prioritätspfaden für unterschiedliche Inferenz-Tasks der KI-Dienste 3918 verteilen.
  • In mindestens einer Ausführungsform kann der gemeinsam genutzte Datenspeicher mit den KI-Diensten 3918 innerhalb des Systems 3900 verbunden sein. In mindestens einer Ausführungsform kann der gemeinsam genutzte Datenspeicher als ein Cache (oder eine andere Speichervorrichtungsart) arbeiten und zur Verarbeitung von Ableitungsanforderungen von Anwendungen verwendet werden. In mindestens einer Ausführungsform kann, wenn eine Inferenzanforderung abgesendet wird, eine Anforderung durch einen Satz von API-Instanzen des Einsatzsystems 3806 empfangen werden und eine oder mehrere Instanzen können ausgewählt werden (z. B. für beste Anpassung, für Lastverteilung usw.), um eine Anforderung zu verarbeiten. In mindestens einer Ausführungsform kann zum Verarbeiten einer Anforderung eine Anforderung in eine Datenbank eingegeben werden, ein Modell des maschinellen Lernens kann aus der Modellregistrierungsdatenbank 3824 lokalisiert werden, falls es sich nicht bereits in einem Cache befindet, ein Validierungsschritt kann sicherstellen, dass ein zweckmäßiges Modell des maschinellen Lernens in einen Cache (z. B. einen gemeinsam genutzten Datenspeicher) geladen wird, und/oder eine Kopie eines Modells kann in einem Cache gesichert werden. In mindestens einer Ausführungsform kann ein Scheduler (z. B. des Pipelineverwalters 3912) verwendet werden, um eine Anwendung zu starten, auf die in einer Anforderung verwiesen wird, falls eine Anwendung nicht bereits läuft oder falls nicht genügend Instanzen einer Anwendung vorhanden sind. In mindestens einer Ausführungsform kann ein Ableitungsserver gestartet werden, wenn ein Ableitungsserver zur Ausführung eines Modells nicht bereits gestartet ist. In mindestens einer Ausführungsform kann pro Modell eine beliebige Anzahl von Inferenzservern gestartet werden. In mindestens einer Ausführungsform können in einem Pull-Modell, in dem Inferenzserver geclustert sind, Modelle zwischengespeichert werden, wann immer eine Lastverteilung vorteilhaft ist. In mindestens einer Ausführungsform können Inferenzserver statisch in entsprechende, verteilte Server geladen werden.
  • In mindestens einer Ausführungsform kann die Inferenz unter Verwendung eines Inferenzservers durchgeführt werden, der in einem Container läuft. In mindestens einer Ausführungsform kann eine Instanz eines Inferenzservers mit einem Modell (und optional einer Vielzahl von Versionen eines Modells) assoziiert sein. In mindestens einer Ausführungsform kann, falls eine Instanz eines Inferenzservers nicht existiert, wenn eine Anforderung zum Durchführen einer Inferenz an einem Modell empfangen wird, eine neue Instanz geladen werden. In mindestens einer Ausführungsform kann beim Starten eines Inferenzservers ein Modell an einen Inferenzserver übergeben werden, sodass der gleiche Container zum Bedienen unterschiedlicher Modelle verwendet werden kann, solange der Inferenzserver als andere Instanz läuft.
  • In mindestens einer Ausführungsform kann während der Anwendungsausführung eine Inferenzanforderung für eine gegebene Anwendung empfangen werden und ein Container (der z. B. eine Instanz eines Inferenzservers hostet) kann geladen werden (falls noch nicht geschehen) und eine Startprozedur kann aufgerufen werden. In mindestens einer Ausführungsform kann Vorverarbeitungslogik in einem Container eingehende Daten laden, decodieren und/oder beliebige zusätzliche Vorverarbeitung an diesen durchführen (z. B. unter Verwendung von CPU(s) und/oder GPU(s)). In mindestens einer Ausführungsform kann ein Container, sobald die Daten für die Inferenz vorbereitet sind, eine Inferenz nach Bedarf an den Daten durchführen. In mindestens einer Ausführungsform kann dies einen einzelnen Inferenzaufruf an einem Bild (z. B. einem Handröntgenbild) beinhalten oder Inferenz an Hunderten von Bildern (z. B. einem Brust-CT) erfordern. In mindestens einer Ausführungsform kann eine Anwendung Ergebnisse zusammenfassen, bevor sie abgeschlossen wird, was ohne Einschränkung einen einzelnen Konfidenzwert, Segmentierung auf Pixelebene, Segmentierung auf Voxelebene, Generieren einer Visualisierung oder Generieren von Text zum Zusammenfassen von Ergebnissen umfassen kann. In mindestens einer Ausführungsform können unterschiedlichen Modellen oder Anwendungen unterschiedliche Prioritäten zugewiesen werden. Zum Beispiel können einige Modelle eine Echtzeitpriorität (TAT weniger als eine Minute) aufweisen, während andere eine niedrigere Priorität aufweisen können (z. B. TAT weniger als 10 Minuten). In mindestens einer Ausführungsform können die Modellausführungszeiten von der anfordernden Institution oder Entität gemessen werden und können die Zeit für die Durchquerung des Partnernetzwerks sowie die Ausführung auf einem Ableitungsdienst beinhalten.
  • In mindestens einer Ausführungsform kann die Übermittlung von Anforderungen zwischen den Diensten 3820 und den Inferenzanwendungen hinter einem Software-Entwicklungskit (SDK) verborgen sein und der robuste Transport durch eine Warteschlange bereitgestellt sein. In mindestens einer Ausführungsform wird eine Anforderung über eine API für eine individuelle Anwendungs-/Tenant-ID-Kombination in eine Warteschlange gestellt und zieht ein SDK eine Anforderung aus einer Warteschlange und gibt eine Anforderung an eine Anwendung weiter. In mindestens einer Ausführungsform kann ein Name einer Warteschlange in einer Umgebung bereitgestellt sein, aus der ein SDK diesen aufnimmt. In mindestens einer Ausführungsform kann die asynchrone Kommunikation durch eine Warteschlange nützlich sein, da sie es einer beliebigen Instanz einer Anwendung ermöglichen kann, die Arbeit aufzunehmen, sobald sie verfügbar wird. In mindestens einer Ausführungsform können die Ergebnisse durch eine Warteschlange zurück übermittelt werden, um sicherzustellen, dass keine Daten verloren gehen. In mindestens einer Ausführungsform können Warteschlangen auch eine Fähigkeit bereitstellen, Arbeit zu segmentieren, da Arbeit mit höchster Priorität an eine Warteschlange gehen kann, mit der die meisten Instanzen einer Anwendung verbunden sind, während Arbeit mit niedrigster Priorität an eine Warteschlange gehen kann, mit der nur eine einzelne Instanz verbunden ist, die Aufgaben in der empfangenen Reihenfolge verarbeitet. In mindestens einer Ausführungsform kann eine Anwendung auf einer GPU-beschleunigten Instanz laufen, die in der Cloud 3926 erzeugt wurde, und ein Inferenzdienst kann das Inferenzieren auf einer GPU durchführen.
  • In mindestens einer Ausführungsform können die Visualisierungsdienste 3920 ausgenutzt werden, um Visualisierungen zur Ansicht von Ausgaben von Anwendungen und/oder Einsatzpipeline(s) 3910 zu erzeugen. In mindestens einer Ausführungsform können die GPUs 3922 durch die Visualisierungsdienste 3920 ausgenutzt werden, um Visualisierungen zu erzeugen. In mindestens einer Ausführungsform können Rendering-Effekte, wie etwa Strahlverfolgung, durch die Visualisierungsdienste 3920 implementiert werden, um Visualisierungen mit höherer Qualität zu erzeugen. In mindestens einer Ausführungsform können Visualisierungen ohne Einschränkung 2D-Bild-Renderings, 3D-Volumen-Renderings, 3D-Volumenrekonstruktionen, 2D-Tomografiescheiben, Virtual-Reality-Anzeigen, Augmented-Reality-Anzeigen usw. beinhalten. In mindestens einer Ausführungsform können virtualisierte Umgebungen verwendet werden, um eine virtuelle interaktive Anzeige oder Umgebung (z. B. eine virtuelle Umgebung) für die Interaktion durch Benutzer eines Systems (z. B. Ärzte, Pfleger, Radiologen usw.) zu erzeugen. In mindestens einer Ausführungsform können die Visualisierungsdienste 3920 einen internen Visualizer, Kinematik und/oder andere Rendering- oder Bildverarbeitungsfähigkeiten oder -funktionen (z. B. Strahlverfolgung, Rasterung, interne Optik usw.) beinhalten.
  • In mindestens einer Ausführungsform kann die Hardware 3822 GPUs 3922, das KI-System 3924, die Cloud 3926 und/oder beliebige andere Hardware beinhalten, die zum Ausführen des Trainingssystems 3804 und/oder des Einsatzsystems 3806 verwendet wird. In mindestens einer Ausführungsform können die GPUs 3922 (z. B. TESLA- und/oder QUADRO-GPUs von NVIDIA) eine beliebige Anzahl von GPUs beinhalten, die zum Ausführen von Verarbeitungs-Tasks von Rechendiensten 3916, Kl-Diensten 3918, Visualisierungsdiensten 3920, anderen Diensten und/oder beliebigen von Merkmalen oder Funktionen der Software 3818 verwendet werden können. In Bezug auf die KI-Dienste 3918 können die GPUs 3922 zum Beispiel zum Durchführen von Vorverarbeitung an Bildgebungsdaten (oder anderen Datentypen, die durch Modelle des maschinellen Lernens verwendet werden), Nachverarbeitung an Ausgaben der Modelle des maschinellen Lernens und/oder zum Durchführen von Inferenzieren (z. B. zum Ausführen von Modellen des maschinellen Lernens) verwendet werden. In mindestens einer Ausführungsform können die Cloud 3926, das KI-System 3924 und/oder andere Komponenten des Systems 3900 die GPUs 3922 verwenden. In mindestens einer Ausführungsform kann die Cloud 3926 eine GPU-optimierte Plattform für Deep-Learning-Tasks beinhalten. In mindestens einer Ausführungsform kann das KI-System 3924 GPUs verwenden und die Cloud 3926 - oder mindestens ein Abschnitt, der mit Deep Learning oder Inferenzieren beauftragt ist - kann unter Verwendung eines oder mehrerer KI-Systeme 3924 ausgeführt werden. Obwohl es sich bei der Hardware 3822 der Veranschaulichung nach um diskrete Komponenten handelt, soll dies demnach nicht einschränkend sein und beliebige Komponenten der Hardware 3822 können mit beliebigen anderen Komponenten der Hardware 3822 kombiniert oder durch diese ausgenutzt werden.
  • In mindestens einer Ausführungsform kann das KI-System 3924 ein speziell entwickeltes Computersystem (z. B. einen Supercomputer oder einen HPC) beinhalten, das für Inferenzieren, Deep Learning, maschinelles Lernen und/oder andere Tasks der künstlichen Intelligenz konfiguriert ist. In mindestens einer Ausführungsform kann das KI-System 3924 (z. B. DGX von NVIDIA) GPU-optimierte Software (z. B. einen Software-Stapel) beinhalten, die unter Verwendung einer Vielzahl von GPUs 3922 zusätzlich zu CPUs, RAM, Datenspeicher und/oder anderen Komponenten, Merkmalen oder Funktionen ausgeführt werden kann. In mindestens einer Ausführungsform können ein oder mehrere KI-Systeme 3924 in der Cloud 3926 (z. B. in einem Rechenzentrum) implementiert sein, um einige oder alle der KI-basierten Verarbeitungs-Tasks des Systems 3900 durchzuführen.
  • In mindestens einer Ausführungsform kann die Cloud 3926 eine GPUbeschleunigte Infrastruktur (z. B. NGC von NVIDIA) beinhalten, die eine GPU-optimierte Plattform zum Ausführen von Verarbeitungs-Tasks des Systems 3900 bereitstellen kann. In mindestens einer Ausführungsform kann die Cloud 3926 ein KI-System(e) 3924 zum Durchführen eines oder mehrerer KI-basierter Tasks des Systems 3900 beinhalten (z. B. als Hardware-Abstraktions- und -Skalierungsplattform). In mindestens einer Ausführungsform kann die Cloud 3926 in das Anwendungsorchestrierungssystem 3928 integriert sein, das mehrere GPUs ausnutzt, um eine nahtlose Skalierung und Lastverteilung zwischen und unter den Anwendungen und Diensten 3820 zu ermöglichen. In mindestens einer Ausführungsform kann die Cloud 3926 damit beauftragt sein, mindestens einige der Dienste 3820 des Systems 3900 auszuführen, einschließlich der Rechendienste 3916, der KI-Dienste 3918 und/oder der Visualisierungsdienste 3920, wie hierin beschrieben. In mindestens einer Ausführungsform kann die Cloud 3926 Inferenz mit kleinen und großen Batches durchführen (z. B. unter Ausführung von TENSOR RT von NVIDIA), eine beschleunigte Parallelrechen-API und -Plattform 3930 bereitstellen (z. B. CUDA von NVIDIA), ein Anwendungsorchestrierungssystem 3928 ausführen (z. B. KUBERNETES), eine Grafik-Rendering-API und -Plattform bereitstellen (z. B. für Strahlverfolgung, 2D-Grafik, 3D-Grafik und/oder andere Rendering-Techniken, um Kinematik mit höherer Qualität zu erzeugen) und/oder sie kann andere Funktionen für das System 3900 bereitstellen.
  • In mindestens einer Ausführungsform kann die Cloud 3926 in dem Bestreben, die Vertraulichkeit von Patientendaten zu wahren (z. B., wenn Patientendaten oder - akten außerhalb der Räumlichkeiten verwendet werden sollen), eine Registrierungsdatenbank beinhalten - wie etwa eine Deep-Learning-Containerregistrierungsdatenbank. In mindestens einer Ausführungsform kann eine Registrierungsdatenbank Container für Instanziierungen von Anwendungen speichern, die Vorverarbeitungs-, Nachverarbeitungs- oder andere Verarbeitungs-Tasks an Patientendaten durchführen können. In mindestens einer Ausführungsform kann die Cloud 3926 Daten empfangen, die Patientendaten sowie Sensordaten in Containern beinhalten, die angeforderte Verarbeitung nur für die Sensordaten in diesen Containern durchführen und dann eine resultierende Ausgabe und/oder Visualisierungen an zweckmäßige Parteien und/oder Vorrichtungen weiterleiten (z. B. medizinische Vorrichtungen in den Räumlichkeiten, die zur Visualisierung oder Diagnose verwendet werden), ohne dass Patientendaten extrahiert oder gespeichert müssen oder anderweitig darauf zugegriffen werden muss. In mindestens einer Ausführungsform wird die Vertraulichkeit von Patientendaten in Übereinstimmung mit HIPAA- und/oder anderen Datenvorschriften gewahrt.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 40 beinhaltet eine beispielhafte Veranschaulichung einer Einsatzpipeline 3910A zum Verarbeiten von Bildgebungsdaten gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 3900 - und insbesondere das Einsatzsystem 3806 - verwendet werden, um die Einsatzpipeline(s) 3910A individuell anzupassen, zu aktualisieren und/oder in eine oder mehrere Produktionsumgebungen zu integrieren. In mindestens einer Ausführungsform beinhaltet die Einsatzpipeline 3910A aus 40 ein nicht einschränkendes Beispiel für eine Einsatzpipeline 3910A, die durch einen konkreten Benutzer (oder ein Team von Benutzern) in einer Einrichtung (z. B. in einem Krankenhaus, einer Klinik, einem Labor, einer Forschungsumgebung usw.) individuell definiert sein kann. In mindestens einer Ausführungsform kann ein Benutzer zum Definieren von Einsatzpipelines 3910A für einen CT-Scanner 4002 - zum Beispiel aus einer Containerregistrierungsdatenbank - eine oder mehrere Anwendungen auswählen, die spezifische Funktionen oder Tasks in Bezug auf die durch den CT-Scanner 4002 erzeugten Bildgebungsdaten durchführen. In mindestens einer Ausführungsform können Anwendungen auf die Einsatzpipeline 3910A als Container angewendet werden, die die Dienste 3820 und/oder Hardware 3822 des Systems 3900 ausnutzen können. Darüber hinaus kann die Einsatzpipeline 3910A zusätzliche Verarbeitungs-Tasks oder Anwendungen beinhalten, die implementiert werden können, um Daten für die Verwendung durch Anwendungen vorzubereiten (z. B. können der DICOM-Adapter 3902B und ein DICOM-Lesegerät 4006 in der Einsatzpipeline 3910A verwendet werden, um Daten für die Verwendung durch eine CT-Rekonstruktion 4008, eine Organsegmentierung 4010 usw. vorzubereiten). In mindestens einer Ausführungsform kann die Einsatzpipeline 3910A für einen konsistenten Einsatz, eine einmalige Verwendung oder für eine andere Häufigkeit oder ein anderes Intervall individuell angepasst oder ausgewählt werden. In mindestens einer Ausführungsform kann ein Benutzer die CT-Rekonstruktion 4008 und die Organsegmentierung 4010 für mehrere Probanden über ein spezifisches Intervall wünschen und daher die Pipeline 3910A für diesen Zeitraum einsetzen. In mindestens einer Ausführungsform kann ein Benutzer für jede Anforderung von dem System 3900 die Anwendungen auswählen, die ein Benutzer möchte, um Verarbeitung an diesen Daten für diese Anforderung durchzuführen. In mindestens einer Ausführungsform kann die Einsatzpipeline 3910A in einem beliebigen Intervall eingestellt werden und aufgrund der Anpassungsfähigkeit und Skalierbarkeit einer Container-Struktur innerhalb des Systems 3900 kann dies ein nahtloser Prozess sein.
  • In mindestens einer Ausführungsform kann die Einsatzpipeline 3910A aus 40 einen CT-Scanner 4002 zum Erzeugen von Bildgebungsdaten eines Patienten oder Probanden beinhalten. In mindestens einer Ausführungsform können die Bildgebungsdaten von dem CT-Scanner 4002 auf einem PACS-Server(n) 4004 gespeichert werden, die mit einer Einrichtung assoziiert sind, in der sich der CT-Scanner 4002 befindet. In mindestens einer Ausführungsform kann der/können die PACS-Server 4004 Software- und/oder Hardware-Komponenten beinhalten, die mit den Bildgebungsmodalitäten (z. B. dem CT-Scanner 4002) in einer Einrichtung eine direkte Schnittstelle bilden können. In mindestens einer Ausführungsform kann der DICOM-Adapter 3902B das Senden und Empfangen von DICOM-Objekten unter Verwendung von DICOM-Protokollen ermöglichen. In mindestens einer Ausführungsform kann der DICOM-Adapter 3902B bei der Vorbereitung oder Konfiguration von DICOM-Daten von PACS-Server(n) 4004 für die Verwendung durch die Einsatzpipeline 3910A helfen. In mindestens einer Ausführungsform kann der Pipeline-Manager 3912 Daten an die Einsatzpipeline 3910A durchrouten, sobald DICOM-Daten durch den DICOM-Adapter 3902B verarbeitet sind. In mindestens einer Ausführungsform kann das DICOM-Lesegerät 4006 Bilddateien und etwaige damit assoziierte Metadaten aus DICOM-Daten extrahieren (z. B. Sinogramm-Rohdaten, wie in der Visualisierung 4016A veranschaulicht). In mindestens einer Ausführungsform können Arbeitsdateien, die extrahiert werden, in einem Cache gespeichert werden, um eine schnellere Verarbeitung durch andere Anwendungen in der Einsatzpipeline 3910A zu ermöglichen. In mindestens einer Ausführungsform kann, sobald das DICOM-Lesegerät 4006 das Extrahieren und/oder Speichern von Daten beendet hat, ein Abschlusssignal an den Pipelineverwalter 3912 kommuniziert werden. In mindestens einer Ausführungsform kann der Pipelineverwalter 3912 dann eine oder mehrere andere Anwendungen oder Container in der Einsatzpipeline 3910A initiieren oder aufrufen.
  • In mindestens einer Ausführungsform kann die Anwendung und/oder der Container für die CT-Rekonstruktion 4008 ausgeführt werden, sobald Daten (z. B. Sinogramm-Rohdaten) für die Verarbeitung durch die Anwendung für die CT-Rekonstruktion 4008 verfügbar sind. In mindestens einer Ausführungsform kann die CT-Rekonstruktion 4008 Sinogramm-Rohdaten aus einem Cache lesen, eine Bilddatei aus den Sinogramm-Rohdaten rekonstruieren (wie z. B. in der Visualisierung 4016B veranschaulicht) und die resultierende Bilddatei in einem Cache speichern. In mindestens einer Ausführungsform kann bei Abschluss der Rekonstruktion dem Pipelineverwalter 3912 signalisiert werden, dass der Rekonstruktions-Task abgeschlossen ist. In mindestens einer Ausführungsform kann, sobald die Rekonstruktion abgeschlossen ist und eine rekonstruierte Bilddatei in einem Cache (oder einer anderen Speichervorrichtung) gespeichert werden kann, die Anwendung und/oder der Container für die Organsegmentierung 4010 durch den Pipelineverwalter 3912 ausgelöst werden. In mindestens einer Ausführungsform kann die Anwendung und/oder der Container für die Organsegmentierung 4010 eine Bilddatei aus einem Cache lesen, eine Bilddatei normalisieren oder in ein für die Inferenz geeignetes Format konvertieren (z. B. eine Bilddatei in eine Eingabeauflösung eines Modells des maschinellen Lernens konvertieren) und die Inferenz gegen ein normalisiertes Bild ausführen. Um Inferenz an einem normalisierten Bild auszuführen, kann sich die Anwendung und/oder der Container für die Organsegmentierung 4010 in mindestens einer Ausführungsform auf die Dienste 3820 stützen und der Pipelineverwalter 3912 und/oder das Anwendungsorchestrierungssystem 3928 können die Verwendung der Dienste 3820 durch die Anwendung und/oder den Container für die Organsegmentierung 4010 erleichtern. Zum Beispiel kann in mindestens einer Ausführungsform die Anwendung und/oder der Container für die Organsegmentierung 4010 die KI-Dienste 3918 ausnutzen, um Inferenz an einem normalisierten Bild durchzuführen, und die KI-Dienste 3918 können die Hardware 3822 (z. B. das KI-System 3924) ausnutzen, um die KI-Dienste 3918 auszuführen. In mindestens einer Ausführungsform kann ein Ergebnis einer Inferenz eine Maskendatei sein (wie z. B. in der Visualisierung 4016C veranschaulicht), die in einem Cache (oder einer anderen Speichervorrichtung) gespeichert werden kann.
  • In mindestens einer Ausführungsform kann, sobald Anwendungen, die DICOM-Daten und/oder aus DICOM-Daten extrahierte Daten verarbeiten, die Verarbeitung abgeschlossen haben, ein Signal für den Pipelineverwalter 3912 erzeugt werden. In mindestens einer Ausführungsform kann der Pipelineverwalter 3912 dann ein DICOM-Schreibgerät 4012 ausführen, um Ergebnisse aus einem Cache (oder einer anderen Speichervorrichtung) zu lesen und Ergebnisse in ein DICOM-Format (z. B. als DICOM-Ausgabe 4014) zur Verwendung durch Benutzer in einer Einrichtung, die eine Anforderung erzeugten, zu verpacken. In mindestens einer Ausführungsform kann die DICOM-Ausgabe 4014 dann an den DICOM-Adapter 3902B übertragen werden, um die DICOM-Ausgabe 4014 für die Speicherung auf den PACS-Server(n) 4004 vorzubereiten (z. B. zum Ansehen durch ein DICOM-Betrachtungsgerät in einer Einrichtung). In mindestens einer Ausführungsform können als Reaktion auf eine Anforderung zur Rekonstruktion und Segmentierung Visualisierungen 4016B und 4016C erzeugt werden und einem Benutzer für Diagnose-, Forschungs- und/oder andere Zwecke zur Verfügung gestellt werden.
  • Obwohl als konsekutive Anwendung in der Einsatzpipeline 3910A veranschaulicht, können die Anwendungen für die CT-Rekonstruktion 4008 und die Organsegmentierung 4010 in mindestens einer Ausführungsform parallel verarbeitet werden. In mindestens einer Ausführungsform, in der die Anwendungen keine Abhängigkeiten voneinander aufweisen und Daten für jede Anwendung verfügbar sind (z. B., nachdem das DICOM-Lesegerät 4006 Daten extrahiert hat), können Anwendungen gleichzeitig, im Wesentlichen gleichzeitig oder mit einer gewissen Überlappung ausgeführt werden. In mindestens einer Ausführungsform, in der zwei oder mehr Anwendungen ähnliche Dienste 3820 erfordern, kann ein Scheduler des Systems 3900 zur Lastverteilung und zum Verteilen von Rechen- oder Verarbeitungsressourcen zwischen und unter verschiedenen Anwendungen verwendet werden. In mindestens einer Ausführungsform kann die Parallelrechenplattform 3930 zum Durchführen von Parallelverarbeitung für Anwendungen verwendet werden, um die Laufzeit der Einsatzpipeline 3910A zu verkürzen, um Ergebnisse in Echtzeit bereitzustellen.
  • In mindestens einer Ausführungsform und unter Bezugnahme auf 41A-41B kann das Einsatzsystem 3806 als ein oder mehrere virtuelle Instrumente implementiert werden, um unterschiedliche Funktionalitäten - wie etwa Bildverarbeitung, Segmentierung, Verbesserung, Kl, Visualisierung und Inferenzieren - mit Bildgebungsvorrichtungen (z. B. CT-Scannern, Röntgenmaschinen, MRT-Maschinen usw.), Sequenzierungsvorrichtungen, Genomikvorrichtungen und/oder anderen Vorrichtungstypen durchzuführen. In mindestens einer Ausführungsform kann das System 3900 die Erstellung und Bereitstellung von virtuellen Instrumenten ermöglichen, die eine softwaredefinierte Einsatzpipeline 3910 beinhalten können, die durch eine Vorrichtung(en) erzeugte rohe/unverarbeitete Eingabedaten empfangen und verarbeitete/rekonstruierte Daten ausgeben kann. In mindestens einer Ausführungsform können Einsatzpipelines 3910 (z. B. 3910A und 3910B), die virtuelle Instrumente darstellen, Intelligenz in einer Pipeline implementieren, wie etwa durch Ausnutzen von Modellen des maschinellen Lernens, um einem System containerisierte Inferenzunterstützung bereitzustellen. In mindestens einer Ausführungsform können virtuelle Instrumente eine beliebige Anzahl von Containern ausführen, die jeweils Instanziierungen von Anwendungen beinhalten. In mindestens einer Ausführungsform, wie etwa, wenn Echtzeitverarbeitung gewünscht ist, können Einsatzpipelines 3910, die virtuelle Instrumente darstellen, statisch sein (z. B. können Container und/oder Anwendungen festgelegt sein), während in anderen Beispielen Container und/oder Anwendungen für virtuelle Instrumente aus einem Pool von Anwendungen oder Ressourcen (z. B. innerhalb einer Containerregistrierungsdatenbank k) ausgewählt werden können (z. B. pro Anforderung).
  • In mindestens einer Ausführungsform kann das System 3900 als ein oder mehrere virtuelle Instrumente in den Räumlichkeiten in einer Einrichtung instanziiert oder ausgeführt werden, zum Beispiel in einem Computersystem, das neben einer Radiologiemaschine, einer Bildgebungsvorrichtung und/oder einem anderen Vorrichtungstyp in einer Einrichtung eingesetzt wird oder anderweitig in Kommunikation damit steht. In mindestens einer Ausführungsform kann jedoch eine Installation in den Räumlichkeiten innerhalb eines Computersystems einer Vorrichtung selbst (z. B. eines Computersystems, das einstückig zu einer Bildgebungsvorrichtung ist), in einem lokalen Rechenzentrum (z. B. einem Rechenzentrum in den Räumlichkeiten) und/oder in einer Cloud-Umgebung (z. B. in der Cloud 3926) instanziiert oder ausgeführt werden. In mindestens einer Ausführungsform kann das Einsatzsystem 3806, das als virtuelles Instrument arbeitet, in einigen Beispielen durch einen Supercomputer oder ein anderes HPC-System instanziiert werden. In mindestens einer Ausführungsform kann die Vor-Ort-Installation die Nutzung hoher Bandbreiten (z. B. über lokale Kommunikationsschnittstellen mit höherem Durchsatz, wie z. B. HF über Ethernet) für die Echtzeitverarbeitung ermöglichen. In mindestens einer Ausführungsform kann Verarbeitung in Echtzeit oder nahezu in Echtzeit besonders nützlich sein, wenn ein virtuelles Instrument eine Ultraschallvorrichtung oder eine andere Bildgebungsmodalität unterstützt, bei der sofortige Visualisierungen erwartet oder für genaue Diagnosen und Analysen erforderlich sind. In mindestens einer Ausführungsform kann eine Cloud-Computing-Architektur zu dynamischem Bursting zu einem Cloud-Computing-Dienstleister oder einem anderen Rechen-Cluster in der Lage sein, wenn die lokale Nachfrage die Kapazität oder Fähigkeit vor Ort übersteigt. In mindestens einer Ausführungsform kann eine Cloud-Architektur, wenn sie implementiert ist, für das Training neuronaler Netze oder anderer Modelle des maschinellen Lernens abgestimmt werden, wie hierin in Bezug auf das Trainingssystem 3804 beschrieben. In mindestens einer Ausführungsform können Modelle des maschinellen Lernens mit vorhandenen Trainingspipelines kontinuierlich lernen und sich verbessern, da sie zusätzliche Daten von Vorrichtungen verarbeiten, die sie unterstützen. In mindestens einer Ausführungsform können virtuelle Instrumente unter Verwendung von zusätzlichen Daten, neuen Daten, existierenden Modellen des maschinellen Lernens und/oder aktualisierten Modellen des maschinellen Lernens kontinuierlich verbessert werden.
  • In mindestens einer Ausführungsform kann ein Computersystem einen Teil der oder die gesamte hierin beschriebene Hardware 3822 beinhalten und die Hardware 3822 kann auf beliebige einer Reihe von Weisen verteilt sein, einschließlich innerhalb einer Vorrichtung, als Teil einer Rechenvorrichtung, die an eine Vorrichtung gekoppelt ist und sich in deren Nähe befindet, in einem lokalen Rechenzentrum in einer Einrichtung und/oder in der Cloud 3926. Da das Einsatzsystem 3806 und die damit assoziierten Anwendungen oder Container in Software erstellt werden (z. B. als diskrete containerisierte Instanziierungen von Anwendungen), können in mindestens einer Ausführungsform das Verhalten, der Betrieb und die Konfiguration von virtuellen Instrumenten sowie die durch virtuelle Instrumente erzeugten Ausgaben nach Wunsch modifiziert oder individuell angepasst werden, ohne dass die Rohausgabe einer Vorrichtung, die ein virtuelles Instrument unterstützt, geändert oder verändert werden muss.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 41A beinhaltet ein beispielhaftes Datenablaufdiagramm eines virtuellen Instruments, das eine Ultraschallvorrichtung unterstützt, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die Einsatzpipeline 3910B einen oder mehrere der Dienste 3820 des Systems 3900 ausnutzen. In mindestens einer Ausführungsform können die Einsatzpipeline 3910B und die Dienste 3820 die Hardware 3822 eines Systems entweder lokal oder in der Cloud 3926 ausnutzen. In mindestens einer Ausführungsform, obwohl nicht veranschaulicht, kann der Prozess 4100 durch den Pipelineverwalter 3912, das Anwendungsorchestrierungssystem 3928 und/oder die Parallelrechenplattform 3930 erleichtert werden.
  • In mindestens einer Ausführungsform kann der Prozess 4100 den Empfang von Bildgebungsdaten von einer Ultraschallvorrichtung 4102 beinhalten. In mindestens einer Ausführungsform können die Bildgebungsdaten auf den PACS-Server(n) in einem DICOM-Format (oder einem anderen Format, wie etwa RIS, CIS, REST-konform, RPC, Rohdaten usw.) gespeichert sein und durch das System 3900 zur Verarbeitung durch die Einsatzpipeline 3910 empfangen werden, die als virtuelles Instrument (z. B. ein virtueller Ultraschall) für die Ultraschallvorrichtung 4102 ausgewählt oder individuell angepasst wurde. In mindestens einer Ausführungsform können die Bildgebungsdaten direkt von einer Bildgebungsvorrichtung (z. B. Ultraschallvorrichtung 4102) empfangen und durch ein virtuelles Instrument verarbeitet werden. In mindestens einer Ausführungsform kann ein Wandler oder ein anderer Signalkonverter, der kommunikativ zwischen einer Bildgebungsvorrichtung und einem virtuellen Instrument gekoppelt ist, die von einer Bildgebungsvorrichtung erzeugten Signaldaten in Bilddaten umwandeln, die von einem virtuellen Instrument verarbeitet werden können. In mindestens einer Ausführungsform können Rohdaten und/oder Bilddaten auf das DICOM-Lesegerät 4006 angewendet werden, um Daten zur Verwendung durch Anwendungen oder Container der Einsatzpipeline 3910B zu extrahieren. In mindestens einer Ausführungsform kann das DICOM-Lesegerät 4006 die Datenaugmentationsbibliothek 4114 (z. B. DALI von NVIDIA) als Dienst 3820 (z. B. als einen der Rechendienste(s) 3916) nutzen, um Daten zu extrahieren, deren Größe zu ändern, sie neu zu skalieren und/oder anderweitig für die Verwendung durch Anwendungen oder Container vorzubereiten.
  • In mindestens einer Ausführungsform kann, sobald die Daten vorbereitet sind, eine Anwendung und/oder ein Container für die Rekonstruktion 4106 ausgeführt werden, um die Daten von der Ultraschallvorrichtung 4102 in eine Bilddatei zu rekonstruieren. In mindestens einer Ausführungsform kann nach der Rekonstruktion 4106 oder gleichzeitig mit der Rekonstruktion 4106 eine Anwendung und/oder ein Container für die Detektion 4108 zur Anomaliedetektion, zur Objektdetektion, zur Merkmalsdetektion und/oder zu anderen Detektions-Tasks in Bezug auf die Daten ausgeführt werden. In mindestens einer Ausführungsform kann eine während der Rekonstruktion 4106 erzeugte Bilddatei während der Detektion 4108 verwendet werden, um Anomalien, Objekte, Merkmale usw. zu identifizieren. In mindestens einer Ausführungsform kann die Anwendung für die Detektion 4108 eine Inferenz-Engine 4116 (z. B. als einen der KI-Dienste(s) 3918) ausnutzen, um Inferenz an Daten durchzuführen, um Detektionen zu erzeugen. In mindestens einer Ausführungsform können ein oder mehrere Modelle des maschinellen Lernens (z. B. aus dem Trainingssystem 3804) durch die Anwendung für die Detektion 4108 ausgeführt oder aufgerufen werden.
  • In mindestens einer Ausführungsform können, sobald die Rekonstruktion 4106 und/oder Detektion 4108 abgeschlossen ist/sind, die aus diesen Anwendungen und/oder Containern ausgegebenen Daten verwendet werden, um Visualisierungen 4110 zu erzeugen, wie etwa die Visualisierung 4112 (z. B. eine Graustufenausgabe), die auf einer Arbeitsstation oder einem Anzeigeendgerät angezeigt wird. In mindestens einer Ausführungsform kann die Visualisierung es einem Techniker oder einem anderen Benutzer ermöglichen, die Ergebnisse der Einsatzpipeline 3910B in Bezug auf die Ultraschallvorrichtung 4102 zu visualisieren. In mindestens einer Ausführungsform kann die Visualisierung 4110 durch Ausnutzen einer Rendering-Komponente 4118 des Systems 3900 (z. B. eines der Visualisierungsdienste(s) 3920) ausgeführt werden. In mindestens einer Ausführungsform kann die Rendering-Komponente 4118 einen 2D-, OpenGL- oder Strahlverfolgungsdienst ausführen, um die Visualisierung 4112 zu erzeugen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 41B beinhaltet ein beispielhaftes Datenablaufdiagramm eines virtuellen Instruments, das einen CT-Scanner unterstützt, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die Einsatzpipeline 3910C einen oder mehrere der Dienste 3820 des Systems 3900 ausnutzen. In mindestens einer Ausführungsform können die Einsatzpipeline 3910C und die Dienste 3820 die Hardware 3822 eines Systems entweder lokal oder in der Cloud 3926 ausnutzen. In mindestens einer Ausführungsform, obwohl nicht veranschaulicht, kann der Prozess 4120 durch den Pipelineverwalter 3912, das Anwendungsorchestrierungssystem 3928 und/oder die Parallelrechenplattform 3930 erleichtert werden.
  • In mindestens einer Ausführungsform kann der Prozess 4120 beinhalten, dass der CT-Scanner 4122 Rohdaten erzeugt, die durch das DICOM-Lesegerät 4006 empfangen werden können (z. B. direkt, über einen PACS-Server 4004, nach der Verarbeitung usw.). In mindestens einer Ausführungsform kann ein virtuelles CT (durch die Einsatzpipeline 3910C instanziiert) eine erste Echtzeitpipeline zum Überwachen eines Patienten (z. B. Patientenbewegungsdetektions-KI 4126) und/oder zum Einstellen oder Optimieren der Belichtung des CT-Scanners 4122 (z. B. unter Verwendung der Belichtungssteuer-Kl 4124) beinhalten. In mindestens einer Ausführungsform können eine oder mehrere der Anwendungen (z. B. 4124 und 4126) einen Dienst 3820 ausnutzen, wie etwa die KI-Dienst(e) 3918. In mindestens einer Ausführungsform können die Ausgaben der Anwendung (oder des Containers) für die Belichtungssteuer-KI 4124 und/oder der Anwendung (oder des Containers) für die Patientenbewegungsdetektions-KI 4126 als Rückmeldung an den CT-Scanner 4122 und/oder einen Techniker verwendet werden, um die Belichtung (oder andere Einstellungen des CT-Scanners 4122) einzustellen und/oder einen Patienten zu informieren, sich weniger zu bewegen.
  • In mindestens einer Ausführungsform kann die Einsatzpipeline 3910C eine Nicht-Echtzeitpipeline zum Analysieren der durch den CT-Scanner 4122 erzeugten Daten beinhalten. In mindestens einer Ausführungsform kann eine zweite Pipeline die Anwendung und/oder den Container für die CT-Rekonstruktion 4008, eine Anwendung und/oder einen Container für eine Grobdetektions-KI 4128, eine Anwendung und/oder einen Container für eine Feindetektions-KI 4132 (wenn z. B. bestimmte Ergebnisse durch die Grobdetektions-KI 4128 detektiert werden), eine Anwendung und/oder einen Container für eine Visualisierung 4130 und eine Anwendung und/oder einen Container für das DICOM-Schreibgerät 4012 (und/oder ein Schreibgerät für einen anderen Datentyp, wie etwa RIS, CIS, REST-konform, RPC, Rohdaten usw.) beinhalten. In mindestens einer Ausführungsform können die durch den CT-Scanner 4122 erzeugten Rohdaten durch Pipelines der Einsatzpipeline 3910C (als virtuelles CT-Instrument instanziiert) gegeben werden, um Ergebnisse zu erzeugen. In mindestens einer Ausführungsform können die Ergebnisse von dem DICOM-Schreibgerät 4012 zur Anzeige übertragen und/oder auf den PACS-Server(n) 4004 zum/zur späteren Abruf, Analyse oder Anzeige durch einen Techniker, eine Fachkraft oder einen anderen Benutzer gespeichert werden.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 42A veranschaulicht ein Datenablaufdiagramm für einen Prozess 4200 zum Trainieren, erneuten Trainieren oder Aktualisieren eines Modells des maschinellen Lernens gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 4200 als nicht einschränkendes Beispiel unter Verwendung des Systems 3900 aus 39 ausgeführt werden. In mindestens einer Ausführungsform kann der Prozess 4200 die Dienste 3820 und/oder die Hardware 3822 des Systems 3900 ausnutzen, wie hierin beschrieben. In mindestens einer Ausführungsform können verfeinerte Modelle 4212, die durch den Prozess 4200 erzeugt wurden, durch das Einsatzsystem 3806 für eine oder mehrere containerisierte Anwendungen in Einsatzpipelines 3910 ausgeführt werden.
  • In mindestens einer Ausführungsform kann das Modelltraining 3814 das erneute Trainieren oder Aktualisieren eines anfänglichen Modells 4204 (z. B. eines vorab trainierten Modells) unter Verwendung neuer Trainingsdaten (z. B. neuer Eingabedaten, wie etwa des Kundendatensatzes 4206, und/oder neuer mit den Eingabedaten assoziierter Ground-Truth-Daten) beinhalten. In mindestens einer Ausführungsform können zum erneuten Trainieren oder Aktualisieren des anfänglichen Modells 4204 die Ausgabe- oder Verlustschicht(en) des anfänglichen Modells 4204 zurückgesetzt oder gelöscht und/oder durch aktualisierte oder neue Ausgabe- oder Verlustschicht(en) ersetzt werden. In mindestens einer Ausführungsform kann das anfängliche Modell 4204 bereits fein abgestimmte Parameter (z. B. Gewichtungen und/oder Verzerrungen) aufweisen, die aus einem früheren Training übriggeblieben sind, sodass das Training oder das erneute Training 3814 nicht so lange dauern oder so viel Verarbeitung erfordern kann wie das Training eines Modells von Grund auf. In mindestens einer Ausführungsform können während des Modelltrainings 3814 durch Zurücksetzen oder Ersetzen der Ausgabe- oder Verlustschicht(en) des anfänglichen Modells 4204 die Parameter aktualisiert und für einen neuen Datensatz auf Grundlage von Verlustberechnungen neu abgestimmt werden, die mit der Genauigkeit der Ausgabe- oder Verlustschicht(en) beim Erzeugen von Vorhersagen an einem neuen Kundendatensatz 4206 (z. B. Bilddaten 3808 aus 38) assoziiert sind.
  • In mindestens einer Ausführungsform können die vorab trainierten Modelle 3906 in einem Datenspeicher oder einer Registrierungsdatenbank (z. B. der Modellregistrierungsdatenbank 3824 aus 38) gespeichert sein. In mindestens einer Ausführungsform können die vorab trainierten Modelle 3906 mindestens teilweise in einer oder mehreren anderen Einrichtungen als der Einrichtung, die den Prozess 4200 ausführt, trainiert worden sein. In mindestens einer Ausführungsform können zum Schutz der Privatsphäre und der Rechte von Patienten, Probanden oder Klienten unterschiedlicher Einrichtungen die vorab trainierten Modelle 3906 in den Räumlichkeiten unter Verwendung von Kunden- oder Patientendaten, die in den Räumlichkeiten erzeugt wurden, trainiert worden sein. In mindestens einer Ausführungsform können die vorab trainierten Modelle 3906 unter Verwendung der Cloud 3926 und/oder anderer Hardware 3822 trainiert werden, aber vertrauliche, datenschutzrechtlich geschützte Patientendaten dürfen nicht an beliebige Komponenten der Cloud 3926 (oder anderer Hardware außerhalb der eigenen Räumlichkeiten) übermittelt werden, durch diese verwendet werden oder für diese zugänglich sein. In mindestens einer Ausführungsform, in der ein vorab trainiertes Modell 3906 unter Verwendung von Patientendaten von mehr als einer Einrichtung trainiert wird, kann das vorab trainierte Modell 3906 einzeln für jede Einrichtung trainiert worden sein, bevor es an Patienten- oder Kundendaten einer anderen Einrichtung trainiert wird. In mindestens einer Ausführungsform, wie etwa, wenn Kunden- oder Patientendaten von Datenschutzbedenken ausgenommen wurden (z. B. durch eine Verzichtserklärung, für die experimentelle Verwendung usw.) oder wenn Kunden- oder Patientendaten in einem öffentlichen Datensatz enthalten sind, können Kunden- oder Patientendaten von einer beliebigen Anzahl von Einrichtungen verwendet werden, um das vorab trainierte Modell 3906 innerhalb und/oder außerhalb der eigenen Räumlichkeiten zu trainieren, wie etwa in einem Rechenzentrum oder einer anderen Cloud-Computing-Infrastruktur.
  • In mindestens einer Ausführungsform kann ein Benutzer beim Auswählen von Anwendungen zur Verwendung in den Einsatzpipelines 3910 auch Modelle des maschinellen Lernens auswählen, die für spezifische Anwendungen verwendet werden sollen. In mindestens einer Ausführungsform kann ein Benutzer kein Modell zur Verwendung aufweisen, sodass ein Benutzer ein vorab trainiertes Modell 3906 zum Verwenden mit einer Anwendung auswählen kann. In mindestens einer Ausführungsform ist das vorab trainierte Modell 3906 möglicherweise nicht dafür optimiert, genaue Ergebnisse an dem Kundendatensatz 4206 einer Einrichtung eines Benutzers zu erzeugen (z. B. auf Grundlage der Patientenvielfalt, der Demografie, der Typen der verwendeten medizinischen Bildgebungsvorrichtungen usw.). In mindestens einer Ausführungsform kann das vorab trainierte Modell 3906 vor dem Einsetzen des vorab trainierten Modells 3906 in der Einsatzpipeline 3910 zur Verwendung mit einer Anwendung(en) für die Verwendung in einer jeweiligen Einrichtung aktualisiert, erneut trainiert und/oder fein abgestimmt werden.
  • In mindestens einer Ausführungsform kann ein Benutzer ein vorab trainiertes Modell 3906 auswählen, das aktualisiert, erneut trainiert und/oder fein abgestimmt werden soll, und das vorab trainierte Modell 3906 kann als anfängliches Modell 4204 für das Trainingssystem 3804 innerhalb des Prozesses 4200 bezeichnet werden. In mindestens einer Ausführungsform kann der Kundendatensatz 4206 (z. B. Bildgebungsdaten, Genomikdaten, Sequenzierungsdaten oder andere Datentypen, die durch Vorrichtungen in einer Einrichtung erzeugt werden) verwendet werden, um das Modelltraining 3814 (das ohne Einschränkung Transferlernen beinhalten kann) an dem anfänglichen Modell 4204 durchzuführen, um das verfeinerte Modell 4212 zu erzeugen. In mindestens einer Ausführungsform können die Ground-Truth-Daten, die dem Kundendatensatz 4206 entsprechen, durch das Trainingssystem 3804 erzeugt werden. In mindestens einer Ausführungsform können Ground-Truth-Daten mindestens teilweise von Klinikern, Wissenschaftlern, Ärzten, Fachkräften in einer Einrichtung erzeugt werden (z. B. als beschriftete Klinikdaten 3812 aus 38).
  • In mindestens einer Ausführungsform kann die KI-gestützte Annotation 3810 in einigen Beispielen verwendet werden, um Ground-Truth-Daten zu erzeugen. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 3810 (z. B. unter Verwendung eines SDK für die KI-gestützt Annotation implementiert) Modelle des maschinellen Lernens (z. B. neuronale Netze) ausnutzen, um vorgeschlagene oder vorhergesagte Ground-Truth-Daten für einen Kundendatensatz zu erzeugen. In mindestens einer Ausführungsform kann der Benutzer 4210 Annotationswerkzeuge innerhalb einer Benutzerschnittstelle (einer grafischen Benutzerschnittstelle (graphical user interface - GUI)) auf der Rechenvorrichtung 4208 verwenden.
  • In mindestens einer Ausführungsform kann der Benutzer 4210 über die Rechenvorrichtung 4208 mit einer GUI interagieren, um Annotationen oder automatische Annotationen zu bearbeiten oder fein abzustimmen. In mindestens einer Ausführungsform kann eine Polygonbearbeitungsmerkmal verwendet werden, um Vertices eines Polygons an genauere oder feiner abgestimmte Positionen zu verschieben.
  • In mindestens einer Ausführungsform können, sobald Ground-Truth-Daten mit dem Kundendatensatz 4206 assoziiert sind, die Ground-Truth-Daten (z. B. aus Kl-gestützter Annotation, manueller Beschriftung usw.) während des Modelltrainings 3814 durch verwendet werden, um das verfeinerte Modell 4212 zu erzeugen. In mindestens einer Ausführungsform kann der Kundendatensatz 4206 beliebig oft auf das anfängliche Modell 4204 angewendet werden und die Ground-Truth-Daten können verwendet werden, um die Parameter des anfänglichen Modells 4204 zu aktualisieren, bis ein akzeptables Genauigkeitslevel für das verfeinerte Modell 4212 erreicht ist. In mindestens einer Ausführungsform kann das verfeinerte Modell 4212, sobald das verfeinerte Modell 4212 erzeugt ist, innerhalb einer oder mehrerer Einsatzpipelines 3910 in einer Einrichtung zum Durchführen eines oder mehrerer Verarbeitungs-Tasks in Bezug auf medizinische Bildgebungsdaten eingesetzt werden.
  • In mindestens einer Ausführungsform kann das verfeinerte Modell 4212 in die vorab trainierten Modellen 3906 in der Modellregistrierungsdatenbank 3824 hochgeladen werden, um durch eine andere Einrichtung ausgewählt zu werden. In mindestens einer Ausführungsform kann dieser Prozess in einer beliebigen Anzahl von Einrichtungen durchgeführt werden, sodass das verfeinerte Modell 4212 an neuen Datensätzen beliebig oft weiter verfeinert werden kann, um ein universelleres Modell zu erzeugen.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • 42B ist eine beispielhafte Veranschaulichung einer Client-Server-Architektur 4232 zum Erweitern von Annotationswerkzeugen mit vorab trainierten Annotationsmodellen gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können die Kl-gestützten Annotationswerkzeuge 4236 auf Grundlage einer Client-Server-Architektur 4232 instanziiert werden. In mindestens einer Ausführungsform können die Annotationswerkzeuge 4236 in Bildgebungsanwendungen zum Beispiel Radiologen beim Identifizieren von Organen und Auffälligkeiten unterstützen. In mindestens einer Ausführungsform können Bildgebungsanwendungen Software-Werkzeuge beinhalten, die dem Benutzer 4210 dabei helfen, als nicht einschränkendes Beispiel einige Extrempunkte an einem konkreten Organ von Interesse auf Rohbildern 4234 (z. B. auf einem 3D-MRT- oder CT-Scan) zu identifizieren und automatisch annotierte Ergebnisse für alle 2D-Scheiben eines konkreten Organs zu empfangen. In mindestens einer Ausführungsform können die Ergebnisse in einem Datenspeicher als Trainingsdaten 4238 gespeichert und als (zum Beispiel und ohne Einschränkung) Ground-Truth-Daten für das Training verwendet werden. In mindestens einer Ausführungsform kann, wenn die Rechenvorrichtung 4208 Extrempunkte für die KI-gestützte Annotation 3810 sendet, ein Deep-Learning-Modell diese Daten zum Beispiel als Eingabe empfangen und Inferenzergebnisse eines segmentierten Organs oder einer Auffälligkeit zurückgeben. In mindestens einer Ausführungsform können vorab instanziierte Annotationswerkzeuge, wie etwa das Kl-gestützte Annotationswerkzeug 4236B in 42B, durch Vornehmen von API-Aufrufen (z. B. API-Aufruf 4244) an einen Server, wie etwa einen Annotationsassistenzserver 4240, erweitert werden, der einen Satz von vorab trainierten Modellen 4242 beinhalten kann, der zum Beispiel in einer Annotationsmodellregistrierungsdatenbank gespeichert ist. In mindestens einer Ausführungsform kann eine Annotationsmodellregistrierungsdatenbank vorab trainierte Modelle 4242 (z. B. Modelle des maschinellen Lernens, wie etwa Deep-Learning-Modelle) speichern, die vorab trainiert sind, um eine KI-gestützte Annotation an einem konkreten Organ oder einer Auffälligkeit durchzuführen. In mindestens einer Ausführungsform können diese Modelle durch Verwenden von Trainingspipelines 3904 weiter aktualisiert werden. In mindestens einer Ausführungsform können vorab installierte Annotationswerkzeuge im Verlauf der Zeit verbessert werden, wenn neue beschriftete Klinikdaten 3812 hinzugefügt werden.
  • Die Inferenz- und/oder Trainingslogik 915 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit einer oder mehreren Ausführungsformen assoziiert sind. Details bezüglich der Inferenz- und/oder Trainingslogik 915 sind hierin in Verbindung mit 9A und/oder 9B bereitgestellt.
  • In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 915 verwendet, um ein neuronales Netzwerk für einen Datenpunkt in einer föderierten Lern(FL)-Umgebung auszuwählen. In mindestens einer Ausführungsform stellt die Inferenz- und/oder Trainingslogik 915 Ergebnisse aus dem Training unterschiedlicher Teile eines Supernetzes an unterschiedlichen Computersystemen bereit, um ein Supernetz zu trainieren. Sobald ein Supernetz trainiert wurde, wird ein optimales neuronales Netzwerk für Datenpunkte an jedem unterschiedlichen Computersystem bestimmt. In mindestens einer Ausführungsform bestimmt die Inferenz- und/oder Trainingslogik 915 ein optimales neuronales Netzwerk an einem Computersystem unter Anleitung von einem lokalen Validierungssatz und/oder Verlustfunktionen.
  • Mindestens eine Ausführungsform der Offenbarung kann im Hinblick auf die folgenden Absätze beschrieben werden:
    1. 1. Prozessor, umfassend:
      • eine oder mehrere Schaltungen zum Trainieren eines neuronalen Netzwerks durch Kombinieren von Trainingsergebnissen von unterschiedlichen Computersystemen, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des neuronalen Netzwerks trainiert.
    2. 2. Prozessor nach Klausel 1, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des neuronalen Netzwerks trainiert, indem es ein Teilnetzwerk aus dem neuronalen Netzwerk zum Trainieren auswählt, wobei das Teilnetzwerk zumindest teilweise basierend auf Informationen ausgewählt wird, die unter Verwendung mindestens eines einer Vielzahl von neuronalen Netzwerken aus dem neuronalen Netzwerk zu inferenzieren sind.
    3. 3. Prozessor nach Klausel 1 oder 2, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen:
      • Empfangen von Trainingsergebnissen, die Modellparameter von jedem der unterschiedlichen Computersysteme umfassen; und
      • Trainieren des neuronalen Netzwerks unter Verwendung der Modellparameter.
    4. 4. Prozessor nach einer der Klauseln 1-3, wobei das neuronale Netzwerk ein Supernetz ist, das eine Vielzahl von neuronalen Netzwerken umfasst.
    5. 5. Prozessor nach einer der Klauseln 1-4, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen:
      • Bereitstellen des Supernetzes für jedes der unterschiedlichen Computersysteme;
      • Weiterleiten eines Datenpunkts unter Verwendung mindestens eines Computersystems der verschiedenen Computersysteme an mindestens eines der Vielzahl von neuronalen Netzwerken zum Inferenzieren;
      • Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen;
      • Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und
      • Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt zu bestimmen.
    6. 6. Prozessor nach einer der Klauseln 1-5, wobei Operationen, die an dem Datenpunkt in jeder Schicht durchgeführt werden, gemittelt werden, bevor sie einer nachfolgenden Schicht zugeführt werden, um zusätzliche Operationen an dem Datenpunkt durchzuführen.
    7. 7. Prozessor nach einer der Klauseln 1-6, wobei der Vergleich unter Verwendung eines lokalen Validierungssatzes durchgeführt wird.
    8. 8. Prozessor nach einer der Klauseln 1-7, wobei ein Verlust basierend auf dem lokalen Validierungssatz bestimmt wird.
    9. 9. Prozessor nach einer der Klauseln 1-8, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen:
      • Weiterleiten eines zweiten Datenpunkts unter Verwendung des mindestens einen Computersystems an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren;
      • Verwenden des Generatornetzwerks zum Rekonstruieren des zweiten Datenpunkts zum Erzeugen eines rekonstruierten zweiten Datenpunkts;
      • Durchführen eines Vergleichs des rekonstruierten zweiten Datenpunkts mit dem zweiten Datenpunkt; und
      • Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um ein zweites Teilnetzwerk für den zweiten Datenpunkt auszuwählen, wobei das zweite Teilnetzwerk entweder das gleiche Teilnetzwerk oder ein anderes Teilnetzwerk ist.
    10. 10. Prozessor nach einer der Klauseln 1-9, wobei der zweite Datenpunkt vom gleichen Eingabetyp ist wie der Datenpunkt.
    11. 11. System, umfassend:
      • einen oder mehrere Computer mit einem oder mehreren Prozessoren zum Trainieren eines neuronalen Netzwerks durch Kombinieren von Trainingsergebnissen von unterschiedlichen Computersystemen, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des neuronalen Netzwerks trainiert.
    12. 12. System nach Klausel 11, wobei das Trainieren unterschiedlicher Teile des neuronalen Netzwerks an jedem der unterschiedlichen Computersysteme ferner den einen oder die mehreren Computer mit einem oder mehreren Prozessoren umfasst, um ein Teilnetzwerk aus einer Vielzahl von neuronalen Netzwerken des neuronalen Netzwerks zum Trainieren auszuwählen.
    13. 13. System nach Klausel 11 oder 12, wobei das Teilnetzwerk einen optimalen Pfad umfasst, der zumindest teilweise basierend auf Informationen bestimmt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
    14. 14. System nach einer der Klauseln 11-13, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen:
      • Empfangen von Modellgewichten von mehreren verschiedenen Computersystemen; und
      • Aggregieren der Modellgewichte und Verwenden von Informationen aus den aggregierten Modellgewichten zum Trainieren des neuronalen Netzwerks.
    15. 15. System nach einer der Klauseln 11-14, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen:
      • Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme;
      • Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem das zu trainierende Teilnetzwerk ausgewählt wird, wobei das Teilnetzwerk ausgewählt wird, indem ein Datenpunkt an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren weitergeleitet wird;
      • Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen;
      • Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und
      • Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt auszuwählen.
    16. 16. System nach einer der Klauseln 11-15, ferner umfassend den einen oder die mehreren Computer mit einem oder mehreren Prozessoren zum Erzeugen eines gewichteten Durchschnitts aus Operationen, die an dem Datenpunkt auf jeder Schicht durchzuführen sind, bevor der Datenpunkt einer nachfolgenden Schicht zugeführt wird, um zusätzliche Operationen an dem Datenpunkt durchzuführen.
    17. 17. System nach einer der Klauseln 11-16, wobei der Vergleich unter Verwendung eines lokalen Validierungssatzes durchgeführt wird.
    18. 18. System nach einer der Klauseln 11-17, wobei ein Verlust basierend auf dem lokalen Validierungssatz bestimmt wird.
    19. 19. System nach einer der Klauseln 11-18, wobei der eine oder die mehreren Computer mit einem oder mehreren Prozessoren ferner mindestens zwei der unterschiedlichen Computersysteme veranlassen, ein unterschiedliches Teilnetzwerk für einen unterschiedlichen Datenpunkt des gleichen Typs auszuwählen.
    20. 20. Maschinenlesbares Medium mit einem darauf gespeicherten Satz von Anweisungen, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren ein neuronales Netzwerk trainieren, indem sie Trainingsergebnisse von verschiedenen Computersystemen kombinieren, wobei jedes der verschiedenen Computersysteme verschiedene Teile des neuronalen Netzwerks trainiert.
    21. 21. Maschinenlesbares Medium nach Klausel 20, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasst:
      • Empfangen von Modellparametern von jedem der unterschiedlichen Computersysteme basierend zumindest teilweise auf jedem der unterschiedlichen Computersysteme, das einen Teil des neuronalen Netzwerks unter Verwendung lokaler Daten für jedes der unterschiedlichen Computersysteme trainiert; und
      • Aggregieren der Modellparameter und Verwenden von Informationen aus den aggregierten Modellparametern zum Erzeugen des neuronalen Netzwerks.
    22. 22. Maschinenlesbares Medium nach Klausel 20 oder 21, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasst:
      • Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme;
      • Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem ein zu trainierendes Teilnetzwerk ausgewählt wird, wobei das Teilnetzwerk ausgewählt wird, indem ein Datenpunkt an das neuronale Netzwerk zum Inferenzieren weitergeleitet wird;
      • Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen;
      • Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und
      • Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht des neuronalen Netzwerks auszuwählen ist, um ein Teilnetzwerk für den Datenpunkt auszuwählen.
    23. 23. Maschinenlesbares Medium nach einer der Klauseln 20-22, wobei das neuronale Netzwerk eine Vielzahl von neuronalen Netzwerken umfasst und jeder unterschiedliche Teil des neuronalen Netzwerks das ausgewählte Teilnetzwerk des neuronalen Netzwerks umfasst.
    24. 24. Maschinenlesbares Medium nach einer der Klauseln 20-23, wobei das Teilnetzwerk einen optimalen Pfad umfasst, der zumindest teilweise basierend auf Informationen bestimmt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
    25. 25. Maschinenlesbares Medium nach einer der Klauseln 20-24, wobei die zu folgernden Informationen lokale Daten umfassen, die für jedes einzelne Computersystem der verschiedenen Computersysteme zugänglich und für andere Computersysteme nicht zugänglich sind.
    26. 26. Maschinenlesbares Medium nach einer der Klauseln 20-25, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner veranlasst, das neuronale Netzwerk zu trainieren, um eine medizinische Bildsegmentierung durchzuführen.
    27. 27. Maschinenlesbares Medium nach einem der Absätze 20-26, wobei das neuronale Netzwerk ein neuronales Faltungsnetzwerk ist.
    28. 28. Prozessor, umfassend:
      • eine oder mehrere Schaltungen zur Verwendung eines neuronalen Netzwerks zur Schlussfolgerung von Informationen, wobei das neuronale Netzwerk trainiert wird, indem Ergebnisse von unterschiedlichen Computersystemen kombiniert werden, die unterschiedliche Teile des neuronalen Netzwerks trainiert haben.
    29. 29. Prozessor nach Klausel 28, wobei das neuronale Netzwerk ein Supernetz ist, das eine Vielzahl von neuronalen Netzwerken umfasst.
    30. 30. Prozessor nach Klausel 28 oder 29, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des Supernetzes trainiert, indem ein Teilnetzwerk aus dem Supernetz zum Trainieren ausgewählt wird, wobei das Teilnetzwerk von jedem der unterschiedlichen Computersysteme zumindest teilweise basierend auf Informationen ausgewählt wird, die für andere Computersysteme nicht zugänglich sind, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
    31. 31. Prozessor nach einer der Klauseln 28-30, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen:
      • Empfangen von Trainingsergebnissen, die Modellparameter von jedem der unterschiedlichen Computersysteme umfassen, wobei jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks unter Verwendung von Daten trainiert, die nicht mit anderen Computersystemen geteilt werden; und
      • Trainieren des Supernetzes unter Verwendung der Modellparameter.
    32. 32. Prozessor nach einer der Klauseln 28-31, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen:
      • Bereitstellen des Supernetzes für jedes der unterschiedlichen Computersysteme;
      • Weiterleiten eines Datenpunkts unter Verwendung mindestens eines Computersystems der verschiedenen Computersysteme an mindestens eines der Vielzahl von neuronalen Netzwerken zum Inferenzieren;
      • Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen;
      • Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und
      • Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt auszuwählen.
    33. 33. Prozessor nach einer der Klauseln 28-32, wobei die eine oder mehreren Schaltungen ferner Ergebnisse aus dem Vergleich zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt durch Verwendung von Kreuzentropie in einer Rekonstruktionsverlustfunktion erzeugen sollen.
    34. 34. Prozessor nach einer der Klauseln 28-33, wobei das neuronale Netzwerk darauf trainiert ist, Bildsegmentierung durchzuführen.
    35. 35. Prozessor nach einer der Klauseln 28-34, wobei das neuronale Netzwerk ein neuronales Faltungsnetzwerk umfasst.
    36. 36. System, umfassend:
      • einen oder mehrere Computer mit einem oder mehreren Prozessoren zur Verwendung eines neuronalen Netzwerks zum Inferenzieren von Informationen, wobei das neuronale Netzwerk trainiert wird, indem Ergebnisse von unterschiedlichen Computersystemen kombiniert werden, die unterschiedliche Teile des neuronalen Netzwerks trainiert haben.
    37. 37. System nach Klausel 36, wobei das Trainieren unterschiedlicher Teile des neuronalen Netzwerks an jedem der unterschiedlichen Computersysteme ferner umfasst, dass der eine oder die mehreren Computer einen oder mehrere Prozessoren aufweisen, um einen Pfad aus einer Vielzahl von neuronalen Netzwerken des neuronalen Netzwerks zum Trainieren auszuwählen, wobei der Pfad zumindest teilweise basierend auf Informationen ausgewählt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
    38. 38. System nach Klausel 36 oder 37, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen:
      • Empfangen von Modellgewichten von jedem der verschiedenen Computersysteme; und
      • Aggregieren der Modellgewichte und Verwenden von Informationen aus den aggregierten Modellgewichten zum Trainieren des neuronalen Netzwerks.
    39. 39. System nach einer der Klauseln 36-38, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen:
      • Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme;
      • Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem der zu trainierende Pfad ausgewählt wird, wobei der Pfad ausgewählt wird, indem ein Datenpunkt an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren weitergeleitet wird;
      • Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen;
      • Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und
      • Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um den Pfad für den Datenpunkt zu konstruieren.
    40. 40. System nach einer der Klauseln 36-39, wobei ein Datenpunkt, der von jedem der unterschiedlichen Computersysteme verwendet wird, für andere Computersysteme unzugänglich ist.
    41. 41. System nach einer der Klauseln 36-40, wobei die verschiedenen Teile des neuronalen Netzwerks darauf trainiert sind, sich an Domänen für jedes der unterschiedlichen Computersysteme anzupassen.
    42. 42. Maschinenlesbares Medium mit einem darauf gespeicherten Satz von Anweisungen, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren ein neuronales Netzwerk verwenden, um Informationen zu inferenzieren, wobei das neuronale Netzwerk durch Kombinieren von Ergebnissen von verschiedenen Computersystemen trainiert wird, die verschiedene Teile des neuronalen Netzwerks trainiert haben.
    43. 43. Maschinenlesbares Medium nach Klausel 42, wobei das Trainieren verschiedener Teile des neuronalen Netzwerks auf jedem der verschiedenen Computersysteme ferner das Auswählen eines Teilnetzwerks aus einer Vielzahl von neuronalen Netzwerken des neuronalen Netzwerks zum Trainieren umfasst, wobei das Teilnetzwerk zumindest teilweise basierend auf Informationen ausgewählt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
    44. 44. Maschinenlesbares Medium nach Klausel 42 oder 43, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasste
      • Empfangen von Modellparametern von jedem der verschiedenen Computersysteme; und
      • Aggregieren der Modellparameter und Verwenden von Informationen aus den aggregierten Modellparametern zum Erzeugen des neuronalen Netzwerks.
    45. 45. Maschinenlesbares Medium nach einer der Klauseln 42-44, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasst:
      • Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme;
      • Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem das zu trainierende Teilnetzwerk ausgewählt wird, wobei das Teilnetzwerk ausgewählt wird, indem ein Datenpunkt an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren weitergeleitet wird;
      • Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen;
      • Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und
      • Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt auszuwählen.
  • In mindestens einer Ausführungsform kann sich eine einzelne Halbleiterplattform auf eine einzige einheitliche halbleiterbasierte integrierte Schaltung oder einen solchen Chip beziehen. In mindestens einer Ausführungsform können Multi-Chip-Module mit erhöhter Verbindungsfähigkeit verwendet werden, die den chipinternen Betrieb simulieren und wesentliche Verbesserungen gegenüber der Nutzung einer herkömmlichen Implementation mit einer zentralen Verarbeitungseinheit („CPU“) und einem Bus bieten. In mindestens einer Ausführungsform können verschiedene Module auch separat oder in verschiedenen Kombinationen von Halbleiterplattformen je nach Wunsch des Benutzers untergebracht sein.
  • In mindestens einer Ausführungsform, unter erneuter Bezugnahme auf 15, sind Computerprogramme in Form von maschinenlesbarem ausführbarem Code oder Computersteuerlogik-Algorithmen in dem Hauptspeicher 1504 und/oder Sekundärspeicher gespeichert. Falls sie durch einen oder mehrere Prozessoren ausgeführt werden, ermöglichen es Computerprogramme dem System 1500, verschiedene Funktionen gemäß mindestens einer Ausführungsform durchzuführen. In mindestens einer Ausführungsform sind Arbeitsspeicher 1504, Datenspeiche und/oder beliebiger anderer Speicher mögliche Beispiele für computerlesbare Medien. In mindestens einer Ausführungsform kann sich der Sekundärspeicher auf ein(e) beliebige(s) geeignete(s) Speichervorrichtung oder -system beziehen, wie etwa ein Festplattenlaufwerk und/oder ein Wechselspeicherlaufwerk, das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Compact-Disk-Laufwerk, ein Digital-Versatile-Disk-(„DVD“-)Laufwerk, eine Aufzeichnungsvorrichtung, einen Universal-Serial-Bus-(„USB“-)Flash-Speicher usw. darstellt. In mindestens einer Ausführungsform werden die Architektur und/oder die Funktionalität verschiedener vorheriger Figuren im Kontext der CPU 1502, des Parallelverarbeitungssystems 1512, einer integrierten Schaltung, die mindestens zu einem Teil der Fähigkeiten sowohl der CPU 1502 als auch des Parallelverarbeitungssystems 1512 in der Lage ist, eines Chipsatzes (z. B. einer Gruppe integrierter Schaltungen, die so ausgestaltet ist, dass sie als Einheit zum Durchführen verwandter Funktionen arbeitet und verkauft wird, usw.) und/oder einer beliebigen geeigneten Kombination integrierter Schaltung(en) implementiert.
  • In mindestens einer Ausführungsform werden die Architektur und/oder Funktionalität verschiedener vorhergehender Figuren im Kontext eines allgemeinen Computersystems, eines Leiterplattensystems, eines für Unterhaltungszwecke dedizierten Spielekonsolensystems, eines anwendungsspezifischen Systems und mehr implementiert. In mindestens einer Ausführungsform kann das Computersystem 1500 die Form eines Desktop-Computers, eines Laptop-Computers, eines Tablet-Computers, von Servern, von Supercomputern, eines Smartphones (z. B. einer drahtlosen tragbaren Vorrichtung), eines persönlichen digitalen Assistenten („PDA“), einer Digitalkamera, eines Fahrzeugs, einer am Kopf befestigten Anzeige, einer tragbaren elektronischen Vorrichtung, einer Mobiltelefonvorrichtung, eines Fernsehgeräts, einer Arbeitsstation, von Spielekonsolen, eines eingebetteten Systems und/oder eines beliebigen anderen Typs von Logik annehmen.
  • In mindestens einer Ausführungsform beinhaltet das Parallelverarbeitungssystem 1512 ohne Einschränkung eine Vielzahl von Parallelverarbeitungseinheiten („PPUs“) 1514 und damit assoziierte Speicher 1516. In mindestens einer Ausführungsform sind die PPUs 1514 über eine Zusammenschaltung 1518 und einen Switch 1520 oder Multiplexer mit einem Host-Prozessor oder anderen Peripherievorrichtungen verbunden. In mindestens einer Ausführungsform verteilt das Parallelverarbeitungssystem 1512 Rechen-Tasks auf PPUs 1514, die parallelisierbar sein können - zum Beispiel als Teil der Verteilung von Rechen-Tasks auf mehrere Thread-Blöcke einer Grafikverarbeitungseinheit („GPU“). In mindestens einer Ausführungsform wird der Speicher von einigen oder allen PPUs 1514 gemeinsam genutzt und ist er für diese zugänglich (z. B. für Lese- und/oder Schreibzugriff), obwohl ein derartiger gemeinsam genutzter Speicher Einbußen bei der Rechenleistung in Bezug auf die Verwendung von lokalem Speicher und Registern, die in einer PPU 1514 resident sind, mit sich bringen kann. In mindestens einer Ausführungsform wird der Betrieb der PPUs 1514 durch Verwendung eines Befehls wie etwa syncthreads() synchronisiert, wobei alle Threads in einem Block (z. B. über mehrere PPUs 1514 hinweg ausgeführt) einen bestimmten Punkt der Codeausführung erreichen müssen, bevor sie fortfahren.
  • Andere Variationen liegen innerhalb des Geistes der vorliegenden Offenbarung. Somit können zwar bezüglich der offenbarten Verfahren diverse Modifikationen und alternative Konstruktionen vorgenommen werden, bestimmte veranschaulichte Ausführungsformen davon werden jedoch in den Zeichnungen gezeigt und wurden vorangehend ausführlich beschrieben. Allerdings versteht es sich, dass nicht die Absicht verfolgt wird, die Offenbarung auf die spezifische(n) offenbarte(n) Form oder Formen einzuschränken, sondern die Absicht ganz im Gegenteil darin besteht, sämtliche Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und Umfang der wie in den beigefügten Ansprüchen definierten Offenbarung fallen.
  • Die Verwendung der Ausdrücke „ein“ und „eine“ und „der/die/das“ und ähnlicher Referenten im Kontext des Beschreibens offenbarter Ausführungsformen (insbesondere im Kontext der folgenden Ansprüche) ist so auszulegen, dass sie sowohl den Singular als auch den Plural abdeckt, sofern hierin nichts anderes angegeben ist oder der Kontext dem eindeutig widerspricht, und nicht als Definition eines Ausdrucks. Die Ausdrücke „umfassend“, „aufweisend“, „beinhaltend“ und „enthaltend“ sind als offene Ausdrücke auszulegen (die „einschließlich, aber nicht beschränkt auf“ bedeuten), sofern nicht anderweitig angemerkt. Wenn es unmodifiziert vorliegt und sich auf physische Verbindungen bezieht, ist „verbunden“ als teilweise oder vollständig ineinander enthalten, aneinander angebracht oder aneinander angefügt auszulegen, auch wenn ein Element dazwischenliegt. Die Nennung von Wertebereichen hierin soll lediglich als kurzes Verfahren zur einzelnen Bezugnahme auf jeden separaten Wert dienen, der in den Bereich fällt, es sei denn, hierin ist etwas anderes angegeben, und jeder separate Wert ist in die Beschreibung eingeschlossen, als ob er einzeln hierin wiedergegeben wäre. In mindestens einer Ausführungsform ist die Verwendung des Ausdrucks „Satz“ bzw. „Menge“ (z. B. „ein Satz bzw. eine Menge von Gegenständen“) oder „Teilmenge“ als eine nicht leere Sammlung auszulegen, die ein oder mehrere Elemente umfasst, es sei denn, es ist etwas anderes angemerkt oder der Kontext widerspricht dem. Sofern nichts anderes angegeben ist oder der Kontext dem widerspricht, bezeichnet ferner der Ausdruck „Teilmenge“ eines entsprechenden Satzes nicht notwendigerweise eine richtige Teilmenge des entsprechenden Satzes, sondern die Teilmenge und der entsprechende Satz können gleich sein.
  • Sofern nicht spezifisch etwas anderes angegeben ist oder der Kontext dem eindeutig widerspricht, sind verbindende Ausdrücke, wie etwa Formulierungen der Form „mindestens eines von A, B und C“ oder „mindestens eines von A, B und C“, andernfalls in dem Kontext zu verstehen, in dem sie allgemein verwendet werden, um darzustellen, dass ein Gegenstand, ein Ausdruck usw. entweder A oder B oder C oder eine beliebige nichtleere Teilmenge des Satzes aus A und B und C sein kann. Zum Beispiel beziehen sich in dem veranschaulichenden Beispiel für einen Satz, der drei Elemente aufweist, die verbindenden Formulierungen „mindestens eines von A, B und C“ und „mindestens eines von A, B und C“ auf einen beliebigen der folgenden Sätze: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Somit soll derartige verbindende Sprache im Allgemeinen nicht implizieren, dass bestimmte Ausführungen es erforderlich machen, dass mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden ist. Sofern nichts anderes angemerkt ist oder der Kontext dem widerspricht, gibt der Ausdruck „Vielzahl“ einen Zustand der Pluralität an (z. B. gibt „eine Vielzahl von Gegenständen“ mehrere Gegenstände an). In mindestens einer Ausführungsform beträgt die Anzahl der Gegenstände in einer Vielzahl mindestens zwei, es können aber auch mehr sein, wenn dies entweder explizit oder durch den Kontext angegeben ist. Sofern nichts anderes genannt ist oder es anderweitig aus dem Kontext ersichtlich ist, bedeutet die Formulierung „auf Grundlage von“ „mindestens zum Teil auf Grundlage von“ und nicht „ausschließlich auf Grundlage von“.
  • Hierin beschriebene Vorgänge von Prozessen können in einer beliebigen geeigneten Reihenfolge durchgeführt werden, sofern es hierin nicht anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht. In mindestens einer Ausführungsform wird ein Prozess, wie etwa die hierin beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon), unter der Steuerung von einem oder mehreren Computersystemen durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind, und er ist als Code (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), der zusammen auf einem oder mehreren Prozessoren ausgeführt wird, durch Hardware oder Kombinationen davon implementiert. In mindestens einer Ausführungsform ist Code auf einem computerlesbaren Speichermedium gespeichert, zum Beispiel in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die durch einen oder mehrere Prozessoren ausgeführt werden können. In mindestens einer Ausführungsform ist ein computerlesbares Speichermedium ein nicht-transitorisches computerlesbares Speichermedium, das transitorische Signale (z. B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nicht-transitorische Datenspeicherschaltungen (z. B. Puffer, Cache und Warteschlangen) innerhalb von Sendeempfängern von transitorischen Signalen einschließt. In mindestens einer Ausführungsform ist der Code (z. B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichttransitorischen computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen gespeichert sind (oder einem anderen Speicher zum Speichern ausführbarer Anweisungen), die bei Ausführung (d. h. als Ergebnis der Ausführung) durch einen oder mehrere Prozessoren eines Computersystems das Computersystem dazu veranlassen, hierin beschriebene Operationen durchzuführen. Ein Satz von nichttransitorischen computerlesbaren Speichermedien umfasst in mindestens einer Ausführungsform mehrere nichttransitorische computerlesbare Speichermedien und einem oder mehreren der einzelnen nichttransitorischen Speichermedien mehrerer nichttransitorischer computerlesbarer Speichermedien fehlt der gesamte Code, während mehrere nichttransitorische computerlesbare Speichermedien zusammen den gesamten Code speichern. In mindestens einer Ausführungsform werden die ausführbaren Anweisungen so ausgeführt, dass unterschiedliche Anweisungen durch unterschiedliche Prozessoren ausgeführt werden - zum Beispiel speichert ein nichttransitorisches computerlesbares Speichermedium Anweisungen und eine hauptsächliche zentrale Verarbeitungseinheit („CPU“) führt einige der Anweisungen aus, während eine Grafikverarbeitungseinheit („GPU“) andere Anweisungen ausführt. In mindestens einer Ausführungsform weisen unterschiedliche Komponenten eines Computersystems separate Prozessoren auf und führen unterschiedliche Prozessoren unterschiedliche Teilmengen von Anweisungen aus.
  • Dementsprechend sind in mindestens einer Ausführungsform Computersysteme so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder zusammen Operationen der hierin beschriebenen Prozesse durchführen, und derartige Computersysteme sind mit geeigneter Hardware und/oder Software konfiguriert, die eine Durchführung der Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der vorliegenden Offenbarung implementiert, eine einzelne Vorrichtung und in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Vorrichtungen umfasst, die unterschiedlich arbeiten, sodass das verteilte Computersystem die hierin beschriebenen Operationen durchführt und sodass eine einzelne Vorrichtung nicht alle Operationen durchführt.
  • Die Verwendung von Beispielen oder beispielhafter Wortwahl (z. B. „wie etwa“), die hierin bereitgestellt ist, soll lediglich die Ausführungsformen der Offenbarung besser verdeutlichen und stellt keine Einschränkung des Umfangs der Offenbarung dar, es sei denn, es ist etwas anderes beansprucht. Keinerlei Wortwahl in der Beschreibung sollte so ausgelegt werden, dass sie ein beliebiges nicht beanspruchtes Element als für die Umsetzung der Offenbarung wesentlich angibt.
  • Jegliche Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patenten, die hierin erwähnt werden, sind hiermit durch Bezugnahme in demselben Maße aufgenommen, als wäre jede Referenz einzeln und spezifisch als durch Referenz eingeschlossen angegeben und in ihrer Gesamtheit hierin ausgeführt.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander beabsichtigt sein können. Vielmehr kann in konkreten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt miteinander stehen. Mit „gekoppelt“ kann auch gemeint sein, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, jedoch trotzdem miteinander zusammenwirken oder interagieren.
  • Sofern nicht ausdrücklich anders angegeben, versteht es sich, dass sich Begriffe wie „Verarbeitung“, „Berechnung“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Beschreibung auf Handlungen und/oder Prozesse eines Computers oder Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung, die Daten, die als physische, z. B. elektronische, Größen in den Registern und/oder Speichern des Computersystems dargestellt sind, manipulieren und/oder in andere Daten umwandeln, die auf ähnliche Weise als physische Größen in den Speichern, Registern oder anderen derartigen Informationsspeicher-, -übertragungs- oder - anzeigevorrichtungen des Computersystems dargestellt sind.
  • Auf ähnliche Weise kann sich der Ausdruck „Prozessor“ auf eine beliebige Vorrichtung oder einen beliebigen Abschnitt einer Vorrichtung beziehen, die/der elektronische Daten aus Registern und/oder Speicher verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speicher gespeichert werden können. Als nicht einschränkende Beispiele kann der „Prozessor“ eine CPU oder eine GPU sein. Eine „Rechenplattform“ kann einen oder mehrere Prozessoren umfassen. Wie hierin verwendet, können „Software“-Prozesse zum Beispiel Software- und/oder Hardware-Entitäten beinhalten, die im Verlauf der Zeit Arbeit verrichten, wie etwa Tasks, Threads und intelligente Agenten. Außerdem kann sich jeder Prozess auf mehrere Prozesse beziehen, um Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend auszuführen. In mindestens einer Ausführungsform werden die Ausdrücke „System“ und „Verfahren“ hierin insofern austauschbar verwendet, dass ein System ein oder mehrere Verfahren verkörpern kann und die Verfahren als System betrachtet werden können.
  • Im vorliegenden Dokument kann auf das Erlangen, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Teilsystem, ein Computersystem oder eine computerimplementierte Maschine Bezug genommen werden. In mindestens einer Ausführungsform kann der Prozess des Erlangens, Erfassens, Empfangens oder Eingebens von analogen und digitalen Daten auf eine Vielfalt von Weisen erzielt werden, wie etwa durch das Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs einer Anwendungsprogrammierschnittstelle. In mindestens einer Ausführungsform können Prozesse des Erlangens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übermitteln von Daten über eine serielle oder parallele Schnittstelle erfolgen. In mindestens einer Ausführungsform können Prozesse des Erlangens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übermitteln von Daten über ein Computernetz von der bereitstellenden Entität zu der erfassenden Entität erfolgen. In mindestens einer Ausführungsform kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Darstellen von analogen oder digitalen Daten Bezug genommen werden. In verschiedenen Beispielen können Prozesse des Bereitstellens, Ausgebens, Übertragens, Sendens oder Darstellens von analogen oder digitalen Daten durch das Übermitteln von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Interprozesskommunikationsmechanismus erfolgen.
  • Auch wenn die Beschreibungen hierin beispielhafte Implementationen der beschriebenen Techniken darlegen, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sie sollen im Umfang dieser Offenbarung liegen. Darüber hinaus könnten, obwohl spezifische Verteilungen von Zuständigkeiten vorstehend zum Zwecke der Beschreibung definiert sein können, verschiedene Funktionen und Zuständigkeiten in Abhängigkeit von den Umständen anders verteilt und aufgeteilt werden.
  • Obwohl der Gegenstand ferner in für Strukturmerkmale und/oder Verfahrenshandlungen spezifischer Sprache beschrieben wurde, versteht sich, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht unbedingt auf die beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr sind die konkreten Merkmale und Handlungen als beispielhafte Formen der Implementierung der Ansprüche offenbart.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16889652 [0001]

Claims (45)

  1. Prozessor, umfassend: eine oder mehrere Schaltungen zum Trainieren eines neuronalen Netzwerks durch Kombinieren von Trainingsergebnissen von unterschiedlichen Computersystemen, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des neuronalen Netzwerks trainiert.
  2. Prozessor nach Anspruch 1, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des neuronalen Netzwerks trainiert, indem es ein Teilnetzwerk aus dem neuronalen Netzwerk zum Trainieren auswählt, wobei das Teilnetzwerk zumindest teilweise basierend auf Informationen ausgewählt wird, die unter Verwendung mindestens eines einer Vielzahl von neuronalen Netzwerken aus dem neuronalen Netzwerk zu inferenzieren sind.
  3. Prozessor nach Anspruch 2, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen: Empfangen von Trainingsergebnissen, die Modellparameter von jedem der unterschiedlichen Computersysteme umfassen; und Trainieren des neuronalen Netzwerks unter Verwendung der Modellparameter.
  4. Prozessor nach Anspruch 2, wobei das neuronale Netzwerk ein Supernetz ist, das eine Vielzahl von neuronalen Netzwerken umfasst.
  5. Prozessor nach Anspruch 4, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen: Bereitstellen des Supernetzes für jedes der unterschiedlichen Computersysteme; Weiterleiten eines Datenpunkts unter Verwendung mindestens eines Computersystems der verschiedenen Computersysteme an mindestens eines der Vielzahl von neuronalen Netzwerken zum Inferenzieren; Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen; Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt zu bestimmen.
  6. Prozessor nach Anspruch 5, wobei Operationen, die an dem Datenpunkt in jeder Schicht durchgeführt werden, gemittelt werden, bevor sie einer nachfolgenden Schicht zugeführt werden, um zusätzliche Operationen an dem Datenpunkt durchzuführen.
  7. Prozessor nach Anspruch 5, wobei der Vergleich unter Verwendung eines lokalen Validierungssatzes durchgeführt wird.
  8. Prozessor nach Anspruch 7, wobei ein Verlust basierend auf dem lokalen Validierungssatz bestimmt wird.
  9. Prozessor nach Anspruch 5, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen: Weiterleiten eines zweiten Datenpunkts unter Verwendung des mindestens einen Computersystems an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren; Verwenden des Generatornetzwerks zum Rekonstruieren des zweiten Datenpunkts zum Erzeugen eines rekonstruierten zweiten Datenpunkts; Durchführen eines Vergleichs des rekonstruierten zweiten Datenpunkts mit dem zweiten Datenpunkt; und Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um ein zweites Teilnetzwerk für den zweiten Datenpunkt auszuwählen, wobei das zweite Teilnetzwerk entweder das gleiche Teilnetzwerk oder ein anderes Teilnetzwerk ist.
  10. Prozessor nach Anspruch 9, wobei der zweite Datenpunkt vom gleichen Eingabetyp ist wie der Datenpunkt.
  11. System, umfassend: einen oder mehrere Computer mit einem oder mehreren Prozessoren zum Trainieren eines neuronalen Netzwerks durch Kombinieren von Trainingsergebnissen von unterschiedlichen Computersystemen, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des neuronalen Netzwerks trainiert.
  12. System nach Anspruch 11, wobei das Trainieren unterschiedlicher Teile des neuronalen Netzwerks an jedem der unterschiedlichen Computersysteme ferner den einen oder die mehreren Computer mit einem oder mehreren Prozessoren umfasst, um ein Teilnetzwerk aus einer Vielzahl von neuronalen Netzwerken des neuronalen Netzwerks zum Trainieren auszuwählen.
  13. System nach Anspruch 12, wobei das Teilnetzwerk einen optimalen Pfad umfasst, der zumindest teilweise basierend auf Informationen bestimmt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
  14. System nach Anspruch 12, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen: Empfangen von Modellgewichten von mehreren verschiedenen Computersystemen; und Aggregieren der Modellgewichte und Verwenden von Informationen aus den aggregierten Modellgewichten zum Trainieren des neuronalen Netzwerks.
  15. System nach Anspruch 14, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen: Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme; Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem das zu trainierende Teilnetzwerk ausgewählt wird, wobei das Teilnetzwerk ausgewählt wird, indem ein Datenpunkt an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren weitergeleitet wird; Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen; Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt auszuwählen.
  16. System nach Anspruch 15, ferner umfassend den einen oder die mehreren Computer mit einem oder mehreren Prozessoren zum Erzeugen eines gewichteten Durchschnitts aus Operationen, die an dem Datenpunkt auf jeder Schicht durchzuführen sind, bevor der Datenpunkt einer nachfolgenden Schicht zugeführt wird, um zusätzliche Operationen an dem Datenpunkt durchzuführen.
  17. System nach Anspruch 15, wobei der Vergleich unter Verwendung eines lokalen Validierungssatzes durchgeführt wird.
  18. System nach Anspruch 17, wobei ein Verlust basierend auf dem lokalen Validierungssatz bestimmt wird.
  19. System nach Anspruch 11, wobei der eine oder die mehreren Computer mit einem oder mehreren Prozessoren ferner mindestens zwei der unterschiedlichen Computersysteme veranlassen, ein unterschiedliches Teilnetzwerk für einen unterschiedlichen Datenpunkt des gleichen Typs auszuwählen.
  20. Maschinenlesbares Medium mit einem darauf gespeicherten Satz von Anweisungen, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren ein neuronales Netzwerk trainieren, indem sie Trainingsergebnisse von verschiedenen Computersystemen kombinieren, wobei jedes der verschiedenen Computersysteme verschiedene Teile des neuronalen Netzwerks trainiert.
  21. Maschinenlesbares Medium nach Anspruch 20, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasst: Empfangen von Modellparametern von jedem der unterschiedlichen Computersysteme basierend zumindest teilweise auf jedem der unterschiedlichen Computersysteme, das einen Teil des neuronalen Netzwerks unter Verwendung lokaler Daten für jedes der unterschiedlichen Computersysteme trainiert; und Aggregieren der Modellparameter und Verwenden von Informationen aus den aggregierten Modellparametern zum Erzeugen des neuronalen Netzwerks.
  22. Maschinenlesbares Medium nach Anspruch 21, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasst: Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme; Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem ein zu trainierendes Teilnetzwerk ausgewählt wird, wobei das Teilnetzwerk ausgewählt wird, indem ein Datenpunkt an das neuronale Netzwerk zum Inferenzieren weitergeleitet wird; Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen; Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht des neuronalen Netzwerks auszuwählen ist, um ein Teilnetzwerk für den Datenpunkt auszuwählen.
  23. Maschinenlesbares Medium nach Anspruch 22, wobei das neuronale Netzwerk eine Vielzahl von neuronalen Netzwerken umfasst und jeder unterschiedliche Teil des neuronalen Netzwerks das ausgewählte Teilnetzwerk des neuronalen Netzwerks umfasst.
  24. Maschinenlesbares Medium nach Anspruch 23, wobei das Teilnetzwerk einen optimalen Pfad umfasst, der zumindest teilweise basierend auf Informationen bestimmt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
  25. Maschinenlesbares Medium nach Anspruch 24, wobei die zu inferenzierenden Informationen lokale Daten umfassen, die für jedes einzelne Computersystem der verschiedenen Computersysteme zugänglich und für andere Computersysteme nicht zugänglich sind.
  26. Maschinenlesbares Medium nach Anspruch 20, wobei der Satz von Anweisungen bei Durchführung durch einen oder mehrere Prozessoren ferner den einen oder die mehreren Prozessoren dazu veranlassen, das neuronale Netzwerk zu trainieren, um eine medizinische Bildsegmentierung durchzuführen.
  27. Maschinenlesbares Medium nach Anspruch 20, wobei das neuronale Netzwerk ein neuronales Faltungsnetzwerk ist.
  28. Prozessor, umfassend: eine oder mehrere Schaltungen zur Verwendung eines neuronalen Netzwerks zum Inferenzieren von Informationen, wobei das neuronale Netzwerk trainiert wird, indem Ergebnisse von unterschiedlichen Computersystemen kombiniert werden, die unterschiedliche Teile des neuronalen Netzwerks trainiert haben.
  29. Prozessor nach Anspruch 28, wobei das neuronale Netzwerk ein Supernetz ist, das eine Vielzahl von neuronalen Netzwerken umfasst.
  30. Prozessor nach Anspruch 29, wobei jedes der unterschiedlichen Computersysteme unterschiedliche Teile des Supernetzes trainiert, indem ein Teilnetzwerk aus dem Supernetz zum Trainieren ausgewählt wird, wobei das Teilnetzwerk von jedem der unterschiedlichen Computersysteme zumindest teilweise basierend auf Informationen ausgewählt wird, die für andere Computersysteme nicht zugänglich sind, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
  31. Prozessor nach Anspruch 30, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen: Empfangen von Trainingsergebnissen, die Modellparameter von jedem der unterschiedlichen Computersysteme umfassen, wobei jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks unter Verwendung von Daten trainiert, die nicht mit anderen Computersystemen geteilt werden; und Trainieren des Supernetzes unter Verwendung der Modellparameter.
  32. Prozessor nach Anspruch 31, wobei die eine oder mehreren Schaltungen ferner zu Folgendem dienen: Bereitstellen des Supernetzes für jedes der unterschiedlichen Computersysteme; Weiterleiten eines Datenpunkts unter Verwendung mindestens eines Computersystems der verschiedenen Computersysteme an mindestens eines der Vielzahl von neuronalen Netzwerken zum Inferenzieren; Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen; Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt auszuwählen.
  33. Prozessor nach Anspruch 32, wobei die eine oder mehreren Schaltungen ferner Ergebnisse aus dem Vergleich zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt durch Verwendung von Kreuzentropie in einer Rekonstruktionsverlustfunktion erzeugen sollen.
  34. Prozessor nach Anspruch 33, wobei das neuronale Netzwerk darauf trainiert ist, eine Bildsegmentierung durchzuführen.
  35. Prozessor nach Anspruch 28, wobei das neuronale Netzwerk ein neuronales Faltungsnetzwerk umfasst.
  36. System, umfassend: einen oder mehrere Computer mit einem oder mehreren Prozessoren zur Verwendung eines neuronalen Netzwerks zum Inferenzieren von Informationen, wobei das neuronale Netzwerk trainiert wird, indem Ergebnisse von unterschiedlichen Computersystemen kombiniert werden, die unterschiedliche Teile des neuronalen Netzwerks trainiert haben.
  37. System nach Anspruch 36, wobei das Trainieren unterschiedlicher Teile des neuronalen Netzwerks an jedem der unterschiedlichen Computersysteme ferner umfasst, dass der eine oder die mehreren Computer mit einem oder mehreren Prozessoren einen Pfad aus einer Vielzahl von neuronalen Netzwerken des neuronalen Netzwerks zum Trainieren auswählen, wobei der Pfad zumindest teilweise basierend auf Informationen ausgewählt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
  38. System nach Anspruch 37, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen: Empfangen von Modellgewichten von jedem der verschiedenen Computersysteme; und Aggregieren der Modellgewichte und Verwenden von Informationen aus den aggregierten Modellgewichten zum Trainieren des neuronalen Netzwerks.
  39. System nach Anspruch 38, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem dienen: Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme; Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem der zu trainierende Pfad ausgewählt wird, wobei der Pfad ausgewählt wird, indem ein Datenpunkt an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren weitergeleitet wird; Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen; Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um den Pfad für den Datenpunkt zu konstruieren.
  40. System nach Anspruch 39, wobei ein Datenpunkt, der von jedem der unterschiedlichen Computersysteme verwendet wird, für andere Computersysteme unzugänglich ist.
  41. System nach Anspruch 36, wobei die verschiedenen Teile des neuronalen Netzwerks darauf trainiert sind, sich an Domänen für jedes der unterschiedlichen Computersysteme anzupassen.
  42. Maschinenlesbares Medium mit einem darauf gespeicherten Satz von Anweisungen, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren ein neuronales Netzwerk verwenden, um Informationen zu inferenzieren, wobei das neuronale Netzwerk durch Kombinieren von Ergebnissen von verschiedenen Computersystemen trainiert wird, die verschiedene Teile des neuronalen Netzwerks trainiert haben.
  43. Maschinenlesbares Medium nach Anspruch 42, wobei das Trainieren verschiedener Teile des neuronalen Netzwerks auf jedem der verschiedenen Computersysteme ferner das Auswählen eines Teilnetzwerks aus einer Vielzahl von neuronalen Netzwerken des neuronalen Netzwerks zum Trainieren umfasst, wobei das Teilnetzwerk zumindest teilweise basierend auf Informationen ausgewählt wird, die unter Verwendung mindestens eines der Vielzahl von neuronalen Netzwerken zu inferenzieren sind.
  44. Maschinenlesbares Medium nach Anspruch 43, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasst: Empfangen von Modellparametern von jedem der verschiedenen Computersysteme; und Aggregieren der Modellparameter und Verwenden von Informationen aus den aggregierten Modellparametern zum Erzeugen des neuronalen Netzwerks.
  45. Maschinenlesbares Medium nach Anspruch 44, wobei der Satz von Anweisungen bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren ferner zu Folgendem veranlasst: Bereitstellen des neuronalen Netzwerks für jedes der unterschiedlichen Computersysteme; Ermöglichen, dass jedes der unterschiedlichen Computersysteme einen Teil des neuronalen Netzwerks trainiert, indem das zu trainierende Teilnetzwerk ausgewählt wird, wobei das Teilnetzwerk ausgewählt wird, indem ein Datenpunkt an das mindestens eine der Vielzahl von neuronalen Netzwerken zum Inferenzieren weitergeleitet wird; Verwenden eines Generatornetzwerks zum Rekonstruieren des Datenpunkts nach dem Weiterleiten des Datenpunkts zum Inferenzieren, um einen rekonstruierten Datenpunkt zu erzeugen; Durchführen eines Vergleichs zwischen dem rekonstruierten Datenpunkt und dem Datenpunkt; und Verwenden der Ergebnisse aus dem Vergleich, um anzugeben, welche Operation aus jeder Schicht von jedem des mindestens einen der Vielzahl von neuronalen Netzwerken auszuwählen ist, um das Teilnetzwerk für den Datenpunkt auszuwählen.
DE112021003077.9T 2020-06-01 2021-05-26 Technik zur Durchführung der Architektursuche für neuronale Netzwerke mit föderiertem Lernen Pending DE112021003077T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/889,652 US20210374502A1 (en) 2020-06-01 2020-06-01 Technique to perform neural network architecture search with federated learning
US16/889,652 2020-06-01
PCT/US2021/034367 WO2021247338A1 (en) 2020-06-01 2021-05-26 Technique to perform neural network architecture search with federated learning

Publications (1)

Publication Number Publication Date
DE112021003077T5 true DE112021003077T5 (de) 2023-03-23

Family

ID=76502879

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021003077.9T Pending DE112021003077T5 (de) 2020-06-01 2021-05-26 Technik zur Durchführung der Architektursuche für neuronale Netzwerke mit föderiertem Lernen

Country Status (4)

Country Link
US (1) US20210374502A1 (de)
CN (1) CN115803756A (de)
DE (1) DE112021003077T5 (de)
WO (1) WO2021247338A1 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018504148A (ja) 2014-10-31 2018-02-15 アイリズム・テクノロジーズ・インコーポレイテッドiRhythm Technologies,Inc. 無線式生体モニタリングデバイス及びシステム
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US11973743B2 (en) 2019-12-13 2024-04-30 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US12026219B2 (en) 2019-12-13 2024-07-02 TripleBlind, Inc. Systems and methods for efficient computations on split data and split algorithms
US11246524B2 (en) 2020-02-12 2022-02-15 Irhythm Technologies, Inc. Non-invasive cardiac monitor and methods of using recorded cardiac data to infer a physiological characteristic of a patient
US11676161B2 (en) * 2020-02-25 2023-06-13 Nec Corporation Combined light and heavy models for image filtering
US20210397940A1 (en) * 2020-06-10 2021-12-23 Nvidia Corporation Behavior modeling using client-hosted neural networks
US11832259B2 (en) * 2020-06-26 2023-11-28 Huawei Technologies Canada Co., Ltd. Deep-learning for distributed channel feedback and precoding
GB2596864A (en) * 2020-07-10 2022-01-12 Graphcore Ltd Machine learning computer
KR20230047456A (ko) 2020-08-06 2023-04-07 아이리듬 테크놀로지스, 아이엔씨 생리학적 모니터링 장치를 위한 전기 부품
EP4192334A1 (de) 2020-08-06 2023-06-14 Irhythm Technologies, Inc. Klebende physiologische überwachungsvorrichtung
US20220114434A1 (en) * 2020-10-09 2022-04-14 International Business Machines Corporation Goal-seek analysis with spatial-temporal data
US12112112B2 (en) * 2020-11-12 2024-10-08 Samsung Electronics Co., Ltd. Method for co-design of hardware and neural network architectures using coarse-to-fine search, two-phased block distillation and neural hardware predictor
EP4001041A1 (de) * 2020-11-16 2022-05-25 Aptiv Technologies Limited Verfahren und systeme zur bestimmung eines von einem autonomen fahrzeug auszuführenden manövers
WO2022109215A1 (en) 2020-11-20 2022-05-27 TripleBlind, Inc. Systems and methods for providing a blind de-identification of privacy data
US20220222317A1 (en) * 2021-01-08 2022-07-14 Mobileye Vision Technologies Ltd. Applying a convolution kernel on input data
US20220230092A1 (en) * 2021-01-21 2022-07-21 EMC IP Holding Company LLC Fast converging gradient compressor for federated learning
US11755954B2 (en) * 2021-03-11 2023-09-12 International Business Machines Corporation Scheduled federated learning for enhanced search
US12008075B2 (en) * 2021-08-16 2024-06-11 International Business Machines Corporation Training federated learning models
CA3240477A1 (en) 2021-12-16 2023-06-22 Apeksha Kumavat Method and system for expanding the operational design domain of an autonomous agent
CN113962391B (zh) * 2021-12-22 2022-03-01 鹏城实验室 神经网络架构搜索方法、装置、设备及存储介质
CN113987255B (zh) * 2021-12-30 2022-04-01 南湖实验室 基于联邦学习与秘密分享的多源密文图像检索方法
US20230306254A1 (en) * 2022-02-03 2023-09-28 TripleBlind, Inc. Systems and methods for quantifying data leakage from a split layer
US11625377B1 (en) 2022-02-03 2023-04-11 TripleBlind, Inc. Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets
WO2023223394A1 (en) * 2022-05-16 2023-11-23 Nec Corporation Neural architecture searching apparatus, neural architecture searching method, and program
WO2023244722A1 (en) * 2022-06-15 2023-12-21 Zeroeyes, Inc. Unified ai model training platform
CN115102592B (zh) * 2022-06-22 2023-10-03 电子科技大学 一种基于联邦学习的多用户mimo波束成形方法
CN115086399B (zh) * 2022-07-28 2022-12-06 深圳前海环融联易信息科技服务有限公司 基于超网络的联邦学习方法、装置及计算机设备
CN115170565B (zh) * 2022-09-06 2022-12-27 浙商银行股份有限公司 基于自动神经网络架构搜索的图像欺诈检测方法及装置
CN115185543B (zh) * 2022-09-09 2022-11-25 腾讯科技(深圳)有限公司 模型部署方法、打包方法、装置、设备及存储介质
US20240119306A1 (en) * 2022-09-23 2024-04-11 Cipherome, Inc. Interoperable privacy-preserving distributed machine learning method for heterogeneous multi-center data
CN115860135B (zh) * 2022-11-16 2023-08-01 中国人民解放军总医院 基于超网的异构联邦学习方法、设备及介质
CN116245255B (zh) * 2023-03-30 2023-07-11 湖南大学 一种在线时空交通流预测方法
CN116935136B (zh) * 2023-08-02 2024-07-02 深圳大学 处理类别不平衡医学图像分类问题的联邦学习方法
CN117011092B (zh) * 2023-09-28 2023-12-19 武昌理工学院 一种智能建筑设备管理监控系统及方法
CN118504713A (zh) * 2024-06-07 2024-08-16 北京天融信网络安全技术有限公司 面向全局优化的联邦学习方法、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929749B2 (en) * 2017-04-24 2021-02-23 Intel Corporation Neural network optimization mechanism
US11373115B2 (en) * 2018-04-09 2022-06-28 Here Global B.V. Asynchronous parameter aggregation for machine learning
US20200272899A1 (en) * 2019-02-22 2020-08-27 Ubotica Technologies Limited Systems and Methods for Deploying and Updating Neural Networks at the Edge of a Network
US11308284B2 (en) * 2019-10-18 2022-04-19 Facebook Technologies, Llc. Smart cameras enabled by assistant systems

Also Published As

Publication number Publication date
WO2021247338A1 (en) 2021-12-09
CN115803756A (zh) 2023-03-14
US20210374502A1 (en) 2021-12-02

Similar Documents

Publication Publication Date Title
DE112021003077T5 (de) Technik zur Durchführung der Architektursuche für neuronale Netzwerke mit föderiertem Lernen
DE102022103363A1 (de) Verwenden neuronaler netze zum durchführen von objekterkennung, instanzsegmentierung und semantischer entsprechung aus der bounding-box-überwachung
DE102021124008A1 (de) Training eines neuronalen netzes unter verwendung robuster temporaler ensemblebildung
DE112021000120T5 (de) Modellprädiktive regelungstechniken für autonome systeme
DE102021121560A1 (de) Objektbild vervollständigung
DE112020001253T5 (de) Techniken zum Trainieren eines neuronalen Netzes unter Verwendung von Transformationen
DE112021000253T5 (de) Auswählen von annotationen für trainingsbilder unter verwendung eines neuronalen netzwerks
DE112021001762T5 (de) Erzeugen von kennzeichnungen für synthetische bilder unter verwenden eines oder mehrerer neuronaler netzwerke
DE102021122617A1 (de) Globales föderiertes training für neuronale netze
DE102022114651A1 (de) Training von objekterfassungssystemen mit generierten bildern
DE102021123213A1 (de) Bewegungssteuerung eines neuronalen Netzes
DE102021129825A1 (de) Objekterkennung und kollisionsvermeidung unter verwendung eines neuronalen netzes
DE112020005364T5 (de) Api für rekurrente neuronale netze
DE112021002945T5 (de) Kontextbezogene Bildübersetzung mit Hilfe neuronaler Netze
DE112021001835T5 (de) Beschriften von bildern mit einem neuronalen netz
DE102021125238A1 (de) Auf fourier-transformation basierte bildsynthese unter verwendung von neuralen netzen
DE102021125533A1 (de) Generierung von differenzierten datenschutzdatensätzen unter verwendung von generativen modellen
DE112021003301T5 (de) Techniken zur klassifikation mit neuronalen netzen
DE102022114796A1 (de) Pretraining-framework für neuronale netzwerke
DE112021001102T5 (de) Hybride quantisierung von neuronalen netzen für edge-computing-anwendungen
DE102021132071A1 (de) Scheduler für neuronales netz
DE112021000953T5 (de) Erzeugung von kennzeichen mittels neuronaler netze
DE112021001461T5 (de) Verbesserte objektidentifizierung mittels eines oder mehrerer neuronaler netze
DE112021001946T5 (de) Attribut-bewusste bildgeneration unter verwendung von neuronalen netzwerken
DE112021001807T5 (de) Beschleunigtes Training für neuronale Netzmodelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT MBB PATENTANW, DE