DE102023103633A1 - Zustandsüberwachung in sicheren rechenzentren - Google Patents

Zustandsüberwachung in sicheren rechenzentren Download PDF

Info

Publication number
DE102023103633A1
DE102023103633A1 DE102023103633.5A DE102023103633A DE102023103633A1 DE 102023103633 A1 DE102023103633 A1 DE 102023103633A1 DE 102023103633 A DE102023103633 A DE 102023103633A DE 102023103633 A1 DE102023103633 A1 DE 102023103633A1
Authority
DE
Germany
Prior art keywords
data
network
memory
processor
server
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
DE102023103633.5A
Other languages
English (en)
Inventor
Benjamin Goska
Ryan Albright
William Andrew Mecham
William Ryan Weese
Aaron Richard Carkin
Michael Thompson
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 DE102023103633A1 publication Critical patent/DE102023103633A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/88Medical equipments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Geräte, Systeme und Verfahren zum Durchführen einer diagnostischen Bewertung von Rechenzentrumsdaten. In mindestens einer Ausführungsform bestimmen ein oder mehrere Prozessoren ein oder mehrere Diagnoseergebnisse mindestens teilweise basierend auf einem trainierten Anwendungsmodell, um homomorph verschlüsselte Protokolldaten zu empfangen und das Modell mit den homomorph verschlüsselten Protokolldaten auszuführen.

Description

  • TECHNISCHES GEBIET
  • Mindestens eine Ausführungsform bezieht sich auf die Zustandsüberwachung von Rechenzentren. Zum Beispiel bezieht sich mindestens eine Ausführungsform auf Systeme und Verfahren zur Überwachung und Bereitstellung von Diagnoseinformationen für sichere Rechenzentren.
  • STAND DER TECHNIK
  • Rechenzentren sammeln während des Betriebs Protokollinformationen für die statistische Modellierung, die zur Überwachung des Zustands verschiedener Komponenten des Rechenzentrums verwendet werden können. Bestimmte Rechenzentren können mit Datenzugriffsbeschränkungen arbeiten, bei denen die Protokollinformationen nicht außerhalb einer sicheren Grenze übertragen werden. Diese sicheren Rechenzentren sind möglicherweise nicht in der Lage, ausreichende Informationen bereitzustellen, um Diagnosesupport zu erhalten, was die Überwachung des Lebenszyklus erschweren kann.
  • Figurenliste
    • 1 veranschaulicht eine perspektivische Ansicht eines Beispiels für ein Rechenzentrum gemäß mindestens einer Ausführungsform;
    • 2 veranschaulicht ein schematisches Diagramm eines Beispiels für eine Diagnoseumgebung gemäß mindestens einer Ausführungsform;
    • 3A veranschaulicht einen schematischen Arbeitsablauf eines Beispiels für einen Modelllernansatz gemäß mindestens einer Ausführungsform;
    • 3B veranschaulicht einen schematischen Arbeitsablauf eines Beispiels für einen Modelllernansatz gemäß mindestens einer Ausführungsform;
    • 4 veranschaulicht einen schematischen Arbeitsablauf eines Beispiels für eine diagnostische Bewertung gemäß mindestens einer Ausführungsform;
    • 5A veranschaulicht ein Flussdiagramm eines Beispiels für einen Prozess zur diagnostischen Bewertung von Rechenzentren gemäß mindestens einer Ausführungsform;
    • 5B veranschaulicht ein Flussdiagramm eines Beispiels für einen Prozess zur Aktualisierung von Diagnosemodellen gemäß mindestens einer Ausführungsform;
    • 5C veranschaulicht ein Flussdiagramm eines Beispiels für eine diagnostische Bewertung gemäß mindestens einer Ausführungsform;
    • 6 veranschaulicht ein verteiltes System gemäß mindestens einer Ausführungsform;
    • 7 veranschaulicht ein beispielhaftes Rechenzentrum gemäß mindestens einer Ausführungsform;
    • 8 veranschaulicht ein Client-Server-Netzwerk gemäß mindestens einer Ausführungsform;
    • 9 veranschaulicht ein Computernetzwerk gemäß mindestens einer Ausführungsform;
    • 10A veranschaulicht ein vernetztes Computersystem gemäß mindestens einer Ausführungsform;
    • 10B veranschaulicht ein vernetztes Computersystem gemäß mindestens einer Ausführungsform;
    • 10C veranschaulicht ein vernetztes Computersystem gemäß mindestens einer Ausführungsform;
    • 11 veranschaulicht eine oder mehrere Komponenten einer Systemumgebung, in der Dienste als Drittanbieter-Netzwerkdienste angeboten werden können, gemäß mindestens einer Ausführungsform;
    • 12 veranschaulicht eine Cloud-Computing-Umgebung gemäß mindestens einer Ausführungsform;
    • 13 veranschaulicht einen Satz funktionaler Abstraktionsschichten, der durch eine Cloud-Computing-Umgebung bereitgestellt wird, gemäß mindestens einer Ausführungsform;
    • 14 veranschaulicht einen Supercomputer auf Chipebene gemäß mindestens einer Ausführungsform;
    • 15 veranschaulicht einen Supercomputer auf Rackmodulebene gemäß mindestens einer Ausführungsform;
    • 16 veranschaulicht einen Supercomputer auf Rack-Ebene gemäß mindestens einer Ausführungsform;
    • 17 veranschaulicht einen Supercomputer auf Gesamtsystemebene gemäß mindestens einer Ausführungsform;
    • 18A veranschaulicht Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform;
    • 18B veranschaulicht Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform;
    • 19 veranschaulicht das Training und den Einsatz eines neuronalen Netzes gemäß mindestens einer Ausführungsform;
    • 20 veranschaulicht eine Architektur eines Systems eines Netzwerks gemäß mindestens einer Ausführungsform;
    • 21 veranschaulicht eine Architektur eines Systems eines Netzwerks gemäß mindestens einer Ausführungsform;
    • 22 veranschaulicht einen Protokollstapel auf Steuerebene gemäß mindestens einer Ausführungsform;
    • 23 veranschaulicht einen Protokollstapel auf Benutzerebene gemäß mindestens einer Ausführungsform;
    • 24 veranschaulicht Komponenten eines Kernnetzwerks gemäß mindestens einer Ausführungsform;
    • 25 veranschaulicht Komponenten eines Systems zum Unterstützen von Netzwerkfunktionsvirtualisierung (NFV) gemäß mindestens einer Ausführungsform;
    • 26 veranschaulicht ein Verarbeitungssystem gemäß mindestens einer Ausführungsform;
    • 27 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 28 veranschaulicht ein System gemäß mindestens einer Ausführungsform;
    • 29 veranschaulicht eine beispielhafte integrierte Schaltung gemäß mindestens einer Ausführungsform;
    • 30 veranschaulicht ein Rechensystem gemäß mindestens einer Ausführungsform;
    • 31 veranschaulicht eine APU gemäß mindestens einer Ausführungsform;
    • 32 veranschaulicht eine CPU gemäß mindestens einer Ausführungsform;
    • 33 veranschaulicht ein beispielhaftes Beschleunigerintegrations-Slice gemäß mindestens einer Ausführungsform;
    • 34A-34B veranschaulichen beispielhafte Grafikprozessoren gemäß mindestens einer Ausführungsform;
    • 35A veranschaulicht einen Grafikkern gemäß mindestens einer Ausführungsform;
    • 35B veranschaulicht eine GPGPU gemäß mindestens einer Ausführungsform;
    • 36A veranschaulicht einen Parallelprozessor gemäß mindestens einer Ausführungsform;
    • 36B veranschaulicht einen Verarbeitungscluster gemäß mindestens einer Ausführungsform;
    • 36C veranschaulicht einen Grafikmultiprozessorgemäß mindestens einer Ausführungsform;
    • 37 veranschaulicht einen Softwarestapel einer Programmierplattform gemäß mindestens einer Ausführungsform;
    • 38 veranschaulicht eine CUDA-Implementierung eines Softwarestapels der 37 gemäß mindestens einer Ausführungsform;
    • 39 veranschaulicht eine ROCm-lmplementierung eines Softwarestapels der 37 gemäß mindestens einer Ausführungsform;
    • 40 veranschaulicht eine OpenCL-Implementierung eines Softwarestapels der 37 gemäß mindestens einer Ausführungsform;
    • 41 veranschaulicht Software, die durch eine Programmierplattform unterstützt wird, gemäß mindestens einer Ausführungsform; und
    • 42 veranschaulicht das Kompilieren von Code zum Ausführen auf Programmierplattformen der 37-40 gemäß mindestens einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • In mindestens einer Ausführungsform kann eine Rechenumgebung eine Vielfalt von Rechenvorrichtungen und Steuersystemen beinhalten, wie im Rechenzentrum 100 in 1 veranschaulicht. In mindestens einer Ausführungsform kann das Rechenzentrum 100 einen oder mehrere Räume 102 mit Racks 104 und Zusatzausrüstungen beinhalten, die zur Unterbringung eines oder mehrerer Server auf einem oder mehreren Serverfachböden verwendet werden. In mindestens einer Ausführungsform wird das Rechenzentrum 100 von verschiedenen Kühlsystemen unterstützt, wie etwa Kühltürmen, Kühlschleifen, Pumpen und anderen Unterstützungssystemen. In mindestens einer Ausführungsform sind Server 106 innerhalb Racks 104 positioniert. In mindestens einer Ausführungsform empfangen die Server 106 innerhalb Racks 104 Betriebsstrom von einer Quelle 108 und können auch mit verschiedenen Kommunikationsquellen gekoppelt sein, wie z. B. einer Verbindung mit einer Netzwerkleitung. In mindestens einer Ausführungsform können die Racks 104 ferner zusätzliche Rackkomponenten 110 beinhalten, die Server, Tafeln, Router, Switches, Luftströmungssysteme und verschiedene andere Optionen beinhalten können. In mindestens einer Ausführungsform stellt die Quelle 108 Betriebsstrom für zusätzliche Rackkomponenten 110 bereit. In mindestens einer Ausführungsform sind mehrere Quellen 108 in Racks 104 angeordnet. In mindestens einer Ausführungsform empfangen Komponenten innerhalb bestimmter Racks 104 Betriebsstrom von Quellen 108 innerhalb bestimmter Racks 104. In mindestens einer Ausführungsform empfangen Komponenten innerhalb bestimmten Racks 104 Betriebsstrom von Quellen 108 innerhalb anderer Racks 104.
  • In mindestens einer Ausführungsform beinhalten Server 106 und zusätzliche Rackkomponenten 110 eine oder mehrere Stromversorgungseinheiten (power supply units - PSU), die Strom für interne Komponenten der Server 106 und/oder zusätzliche Rackkomponenten 110 empfangen und verteilen können. In mindestens einer Ausführungsform wandeln PSUs Hauptwechselstrom (alternating current - AC) in Niederspannungs-geregelten Gleichstrom (direct current - DC) um. In mindestens einer Ausführungsform beinhalten die Server 106 und/oder die zusätzlichen RackKomponenten 110 mehrere PSUs, die Strom an verschiedene Merkmale leiten können, die den Servern 106 und/oder den zusätzlichen Rackkomponenten 110 zugeordnet sind. In mindestens einer Ausführungsform empfangen die PSUs Betriebsenergie von einer oder mehreren Stromverteilungseinheiten (power distribution units - PDUs), die innerhalb der Racks 104 installiert sein können oder auch nicht. In mindestens einer Ausführungsform beinhalten PDUs eine oder mehrere Ausgänge zum Verteilen von elektrischem Strom, wie etwa an Racks 104 und/oder einzelne Komponenten innerhalb der Racks 104.
  • In mindestens einer Ausführungsform beinhalten zugehörige Rechen- oder Rechenzentrumsvorrichtungen Grafikverarbeitungseinheiten (graphics processing units - GPUs), in Switches, Dual-Inline-Speichermodulen (dual inline memory modules - DIMMs) oder zentralen Verarbeitungseinheiten (central processing units - CPUs). In mindestens einer Ausführungsform kann eine zugehörige Rechen- oder Rechenzentrumsvorrichtung eine Verarbeitungskarte mit einer oder mehreren GPUs, Switches oder CPUs darauf beinhalten. In mindestens einer Ausführungsform kann jede(r) dieser GPUs, Switches und CPUs ein Wärme erzeugendes oder Strom verbrauchendes Merkmal dieser Rechenvorrichtung sein. In mindestens einer Ausführungsform kann diese GPU, CPU oder dieser Switch einen oder mehrere Kerne aufweisen. In mindestens einer Ausführungsform können auch ein oder mehrere Kühlsysteme in das Rechenzentrum 100 integriert sein.
  • In mindestens einer Ausführungsform können Informationen während des Betriebs der Server 106 und/oder der den Racks 104 zugeordneten Komponente 110 erfasst werden. In mindestens einer Ausführungsform können Informationen als Protokolldaten bezeichnet werden, die den Aktivitäten für eine oder mehrere Serverkomponenten über einen bestimmten Zeitraum entsprechen. In mindestens einer Ausführungsform können Protokolldaten einen oder mehrere Fehler, an Server gerichtete Anfragen und andere Informationen beinhalten. In mindestens einer Ausführungsform können Protokolldaten zur statistischen Überwachung und zum Sammeln des allgemeinen Komponentenzustands verwendet werden. In mindestens einer Ausführungsform können Protokolldaten dazu verwendet werden, ein oder mehrere Modelle des maschinellen Lernens zu trainieren, um potenzielle Fehler oder Ausfälle präventiv zu identifizieren oder zu erkennen. In mindestens einer Ausführungsform können Protokolldaten zur Fehlerbehebung verwendet werden. In mindestens einer Ausführungsform können Protokolldaten zur Fehlerdiagnose verwendet werden.
  • In mindestens einer Ausführungsform können ein oder mehrere Rechenzentren 100 sichere Rechenzentren sein, in denen Informationen, die die Rechenzentren 100 verlassen dürfen, eingeschränkt sind. In mindestens einer Ausführungsform können die Rechenzentren 100 eine Vertrauensgrenze aufrechterhalten, sodass Informationen die Rechenzentren 100 nicht verlassen. In mindestens einer Ausführungsform werden Rechenzentren von einem oder mehreren Betreibern gewartet, aber wenn Fehler auftreten, können ein oder mehrere Betreiber einen Anbieter kontaktieren, um Unterstützung bei der Diagnose und Fehlerbehebung zu erhalten. In mindestens einer Ausführungsform können Betreiber aufgrund von Einschränkungen bei der Datenübertragung möglicherweise nicht genügend Informationen für die Diagnose und Fehlerbehebung bereitstellen. In mindestens einer Ausführungsform kann die Fehlerbehebung ohne ausreichende Informationen schwierig sein oder möglicherweise gar nicht durchgeführt werden.
  • In mindestens einer Ausführungsform können alternative Ansätze zur Verwendung von Protokolldaten, die in Rechenzentren gesammelt werden, die Durchführung von Diagnose- und Fehlerbehebungsoperationen ermöglichen. In mindestens einer Ausführungsform kann ein kontinuierlicher Lernansatz innerhalb einer sicheren Grenze eines sicheren Rechenzentrums verwendet werden, sodass ein oder mehrere Modelle unter Verwendung von einem oder mehreren von Protokolldaten und externen Daten, die zur Verwendung mit einem oder mehreren Modellen bereitgestellt werden, eingesetzt und aktualisiert werden können. In mindestens einer Ausführungsform kann ein Anfangsmodell an ein oder mehrere sichere Rechenzentren übertragen werden, wie etwa durch einen Anbieter, der einer oder mehreren Komponenten innerhalb sicherer Rechenzentren zugeordnet ist. In mindestens einer Ausführungsform können ein oder mehrere Anfangsmodelle neben anderen Optionen statistische Modelle oder Modelle künstlicher Intelligenz (Kl) sein. In mindestens einer Ausführungsform werden ein oder mehrere Anfangsmodelle mindestens teilweise basierend auf Protokolldaten aktualisiert, die innerhalb eines sicheren Rechenzentrums gesammelt wurden. In mindestens einer Ausführungsform werden ein oder mehrere Anfangsmodelle mindestens teilweise basierend auf externen Daten aktualisiert, die von einem oder mehreren Anbietern bereitgestellt und von einem oder mehreren offenen Rechenzentren erfasst werden. In mindestens einer Ausführungsform können dem Anbieter auch ein oder mehrere aktualisierte Modelle zur weiteren Aktualisierung bereitgestellt werden, wobei Anbieter dann aktualisierte Modelle an ein oder mehrere sichere Rechenzentren zurückübertragen können. In mindestens einer Ausführungsform erfolgen die Aktualisierungen unter Beibehaltung der Einschränkungen bei der Datenübertragung.
  • In mindestens einer Ausführungsform können die Protokolldaten mit einer oder mehreren Verschlüsselungsebenen an einen Anbieter zurückübertragen werden. In mindestens einer Ausführungsform können ein oder mehrere Modelle von einem Anbieter oder Hersteller entwickelt werden, wobei ein oder mehrere Modelle unter Verwendung offener oder nicht sicherer Rechenzentrumsprotokolle trainiert oder anderweitig vorbereitet werden können. In mindestens einer Ausführungsform können ein oder mehrere sichere Rechenzentren Protokolldaten verschlüsseln, wie etwa über eine homomorphe Verschlüsselung, und verschlüsselte Daten einem oder mehreren Anbietern bereitstellen. In mindestens einer Ausführungsform sind ein oder mehrere Modelle so ausgelegt, dass sie mit verschlüsselten Daten arbeiten, ohne diese zu entschlüsseln, wodurch die Sicherheit der Protokolldaten gewahrt bleibt. In mindestens einer Ausführungsform können ein oder mehrere Modelle unter Verwendung von Protokolldaten ausgeführt und ein oder mehrere Diagnoseberichte sowie andere Informationen erzeugt werden. In mindestens einer Ausführungsform können verschlüsselte Informationen nach der Entschlüsselung zur Bewertung an ein oder mehrere sichere Rechenzentren zurück bereitgestellt werden. In mindestens einer Ausführungsform können eine oder mehrere Verschlüsselungsoperationen, die von sicheren Rechenzentren verwendet werden, mindestens teilweise von einer oder mehreren Eigenschaften eines oder mehrerer Anbietermodelle abhängen. In mindestens einer Ausführungsform können ein oder mehrere Modelle im Hinblick auf eine oder mehrere Verschlüsselungsoperationen so entwickelt werden, dass eine oder mehrere Eigenschaften während der Verschlüsselung genutzt werden, um die Ausführung von Modellen unter Verwendung verschlüsselter Daten ohne Entschlüsselung zu ermöglichen.
  • In mindestens einer Ausführungsform beinhaltet eine Umgebung 200 ein Rechenzentrum 100, das eine sichere Grenze 202 aufweist, um ein sicheres Rechenzentrum zu bilden, wie in 2 veranschaulicht. In mindestens einer Ausführungsform kann die sichere Grenze 202 mindestens eine physische Grenze oder eine digitale Grenze sein. In mindestens einer Ausführungsform entspricht die sichere Grenze 202 einem oder mehreren Protokollen, die Daten oder Ausrüstungen warten oder anderweitig daran hindern, sich außerhalb der sicheren Grenze 202 zu bewegen. In mindestens einer Ausführungsform kann die Ausrüstung innerhalb der sicheren Grenze 202 von einem oder mehreren Betreibern gewartet oder anderweitig gesteuert werden, wobei sich der eine oder die mehreren Betreiber von einem Anbieter oder Hersteller der Ausrüstung unterscheiden. In mindestens einer Ausführungsform können ein oder mehrere Betreiber oder Hersteller die sichere Grenze 202 aufrechterhalten. In mindestens einer Ausführungsform beinhaltet das Rechenzentrum 100 Server 106A, 106B, die einzelne Serverkomponenten, Cluster, Knoten oder andere Kombinationen von einem oder mehreren Servern, Serverkomponenten oder zugehörigen Ausrüstungen darstellen können. In mindestens einer Ausführungsform können die Serverkomponenten 110 auch dem Rechenzentrum 100 zugeordnet sein. In mindestens einer Ausführungsform sammeln die Sensoren 204 Informationen von den Servern 106A, 106B und den Serverkomponenten 110, die mindestens teilweise als Protokolldaten beinhaltet sein können. In mindestens einer Ausführungsform können die Sensoren 204 Informationen im Zusammenhang mit den Betriebskapazitäten der Server 106A, 106B und der Serverkomponenten 110 sammeln. In mindestens einer Ausführungsform können die Sensoren 204 Informationen im Zusammenhang mit Aufrufen oder Anfragen an die Server 106A, 106B und die Serverkomponenten 110 sammeln. In mindestens einer Ausführungsform können die Sensoren 204 Stromverbrauchs- oder Temperaturinformationen für die Server 106A, 106B und die Serverkomponenten 110 sammeln. In mindestens einer Ausführungsform kann eine Vielfalt von Informationen als Protokolldaten gesammelt werden. In mindestens einer Ausführungsform sind Sensoren 204 in einen oder mehrere der Server 106A, 106B und Serverkomponenten 110 integriert. In mindestens einer Ausführungsform sind die Sensoren 204 von den Servern 106A, 106B und den Serverkomponenten 110 getrennt. In mindestens einer Ausführungsform sind einige Sensoren 204 in die Server 106A, 106B und die Serverkomponenten 110 integriert oder diesen zugeordnet, und sind einige Sensoren 204 extern und getrennt.
  • In mindestens einer Ausführungsform können die von den Sensoren 204 gesammelten Daten mindestens teilweise verwendet werden, um eine oder mehrere Diagnoseoperationen 206 durchzuführen. In mindestens einer Ausführungsform werden die Diagnoseoperationen 206 als Reaktion auf einen oder mehrere Indikatoren durchgeführt, die den von den Servern 204 gesammelten Daten zugeordnet sind, wie etwa eine Fehlermeldung oder eine unerwartete Betriebskonfiguration. In mindestens einer Ausführungsform werden die Diagnoseoperationen 206 in vorgegebenen Intervallen vorgenommen. In mindestens einer Ausführungsform beinhalten die Diagnoseoperationen 206 Bewertungen unter Verwendung eines oder mehrerer trainierter maschineller Lernsysteme. In mindestens einer Ausführungsform beinhalten die Diagnoseoperationen 206 Bewertungen unter Verwendung eines oder mehrerer statistischer Modelle. In mindestens einer Ausführungsform können Aktualisierungsoperationen 208 periodisch durchgeführt werden, wie etwa zum Aktualisieren von Modellen oder zum Erhalten neuer Informationen, die mindestens teilweise auf der Ausrüstung innerhalb des Rechenzentrums 100 basieren. In mindestens einer Ausführungsform beinhalten die Aktualisierungsoperationen 208 Informationen, die mindestens teilweise von einer oder mehreren externen Quellen, wie etwa einem Anbieter 210, empfangen werden. In mindestens einer Ausführungsform kann der Anbieter 210 ein oder mehrere Hersteller von Ausrüstungen innerhalb des Rechenzentrums 100 sein oder ihnen zugeordnet sein und kann Unterstützung für die Verwendung von Ausrüstungen bereitstellen. In mindestens einer Ausführungsform sammelt der Anbieter 210 Informationen von einer Vielfalt verschiedener Benutzer und kann die Informationen aggregieren, um ein oder mehrere trainierte Modelle des maschinellen Lernens oder statistische Modelle zu entwickeln, um neben anderen Diensten Diagnose- oder Fehlerbehebungsunterstützung bereitzustellen.
  • In mindestens einer Ausführungsform erzeugt der Anbieter 210 ein oder mehrere Modelle 212, bei denen es sich um Modelle des maschinellen Lernens, statistische Modelle oder jede beliebige andere Art von Modell handeln kann, um Informationen zu bewerten, die einem oder mehreren Servern 106 oder Serverkomponenten 110 zugeordnet sind, um mindestens einen Fehler, eine Lebenszykluseigenschaft oder andere Informationen zu identifizieren. In mindestens einer Ausführungsform können Modelle mit einem oder mehreren Bewertungsmodulen 214 verwendet werden, die Informationen von einem oder mehreren Betreibern empfangen können, um neben anderen Optionen einen oder mehrere Fehler zu diagnostizieren oder Fehlerbehebungsoperationen zu erleichtern. In mindestens einer Ausführungsform können ein oder mehrere Berichte 216 erzeugt und den Betreibern bereitgestellt werden, um die Ausführung eines oder mehrerer Operationen zur Behebung der bei der Bewertung festgestellten Probleme zu ermöglichen. In mindestens einer Ausführungsform kann ein Sammelmodul 218 Informationen von einem oder mehreren Rechenzentren empfangen, die Betreibern zugeordnet sind oder intern vom Anbieter gesteuert werden, wobei die Informationen zur Aktualisierung und Verfeinerung der Modelle 212 verwendet werden können.
  • In mindestens einer Ausführungsform kann das sichere Rechenzentrum 100 dem Anbieter 210 möglicherweise keine Informationen über das Sammelmodul 218 bereitstellen, beispielsweise aufgrund von Vorschriften oder Beschränkungen, die Informationen zugeordnet sind. In mindestens einer Ausführungsform kann das sichere Rechenzentrum 100 einen oder mehrere Ausfälle oder Fehler identifizieren, ist aber möglicherweise nicht in der Lage, dem Anbieter 210 Informationen bereitzustellen, und infolgedessen können Diagnose und Fehlerbehebung herausfordernd sein. In mindestens einer Ausführungsform kann der Anbieter 210 ein oder mehrere Modelle 212 bereitstellen, um das Rechenzentrum 100 zur Verwendung vor Ort zu sichern, sodass innerhalb des sicheren Rechenzentrums ein oder mehrere Modelle 212 aktualisiert und speziell für die Verwendung mit dem sicheren Rechenzentrum 100 trainiert und dann zu Diagnosezwecken ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Lernansatz 300 verwendet werden, um ein oder mehrere Modelle für die Verwendung mit einem sicheren Rechenzentrum bereitzustellen und speziell zu trainieren, wie in 3A veranschaulicht. In mindestens einer Ausführungsform können ein oder mehrere Modelle neben anderen Optionen statistische Modelle oder KI-Modelle sein. In mindestens einer Ausführungsform wird ein erstes Modell (M0) 302 entwickelt, das für die Diagnose eines oder mehrerer Fehlerzustände innerhalb eines oder mehrerer Rechenzentren verwendet wird. In mindestens einer Ausführungsform wird das erste Modell 302 unter Verwendung von Informationen trainiert, die von einem oder mehreren offenen Rechenzentren erfasst werden. In mindestens einer Ausführungsform wird das erste Modell 302 unter Verwendung von Informationen trainiert, die von einem oder mehreren von einem Anbieter oder Hersteller gesteuerten Rechenzentren erfasst werden. In mindestens einer Ausführungsform ist das erste Modell 302 ein statistisches Modell oder ein KI-Modell. In mindestens einer Ausführungsform wird das erste Modell 302 mindestens teilweise unter Verwendung von Protokolldaten trainiert, die verschiedene Messungen unterschiedlicher Komponenten innerhalb eines oder mehrerer Rechenzentren aufzeichnen. In mindestens einer Ausführungsform können dem ersten Modell 302 neue Protokolldaten zur Bewertung eines oder mehrerer Datenpunkte oder Trends bereitgestellt werden, die auf einen aktuellen Fehlerzustand oder einen bevorstehenden zukünftigen Fehlerzustand hindeuten können. In mindestens einer Ausführungsform können ein oder mehrere bestimmte Fehlerzustände einer oder mehreren empfohlenen Diagnose- oder Abhilfemaßnahmen zugeordnet sein, um einen oder mehrere Fehlerzustände zu beheben und den weiteren Betrieb eines oder mehrerer Rechenzentren zu ermöglichen. In mindestens einer Ausführungsform wird das erste Modell 302 kontinuierlich aktualisiert. In mindestens einer Ausführungsform wird das erste Modell 302 basierend auf einem oder mehreren aktualisierten Zeitplänen aktualisiert. In mindestens einer Ausführungsform wird das erste Modell 302 für ein oder mehrere spezifische Rechenzentren trainiert, nachdem ein anfängliches Basismodell entwickelt wurde.
  • In mindestens einer Ausführungsform kann das erste Modell 302 für eine oder mehrere spezifischere Anwendungen, wie etwa ein oder mehrere sichere Rechenzentren, modifiziert oder spezifiziert werden. In mindestens einer Ausführungsform ist das zweite Modell (MN) 304 ein speziell trainiertes Modell, das für ein oder mehrere sichere Rechenzentren verwendet wird, wobei ein oder mehrere Aspekte des zweiten Modells 304 für sichere Rechenzentrumsanwendungen angepasst oder anderweitig abgestimmt werden können. In mindestens einer Ausführungsform kann das zweite Modell 304 in den Räumlichkeiten des sicheren Rechenzentrums trainiert oder aktualisiert werden, sodass die dem sicheren Rechenzentrum zugeordneten Informationen eine sichere Grenze des sicheren Rechenzentrums nicht verlassen. In mindestens einer Ausführungsform kann das zweite Modell 304 von einem oder mehreren Herstellern oder Anbietern vor der Verwendung innerhalb eines oder mehrerer sicheren Rechenzentren abgestimmt werden.
  • In mindestens einer Ausführungsform werden die Protokolldaten 306 innerhalb eines oder mehrerer sicheren Rechenzentren gesammelt, wobei die Protokolldaten 306 Informationen beinhalten können, die einem oder mehreren betrieblichen Merkmalen des sicheren Rechenzentrums oder Komponenten des sicheren Rechenzentrums zugeordnet sind. In mindestens einer Ausführungsform können Protokolldaten 306 verwendet werden, um ein oder mehrere aktualisierte Modelle zu erzeugen, wie etwa ein drittes Modell (MN+1) 308. In mindestens einer Ausführungsform können die Protokolldaten 306 anhand eines oder mehrerer Modelle, wie etwa des dritten Modells 308, bewertet werden, um ein oder mehrere Ergebnisse 310 für die Bewertung zu erzeugen. In mindestens einer Ausführungsform können die Ergebnisse 310 für die Bewertung dann für Diagnosezwecke verwendet werden, wie etwa zur Identifizierung einer oder mehrerer leistungsschwacher oder defekter Komponenten, um eine oder mehrere Reparaturmaßnahmen einzuleiten.
  • In mindestens einer Ausführungsform können ein oder mehrere Abschnitte des dritten Modells 308 an einen oder mehrere Anbieter oder Hersteller zurück bereitgestellt werden, um zusätzliche Modelle zu aktualisieren oder anderweitig zu verfeinern, die dann an sichere Rechenzentren zurück bereitgestellt werden können. In mindestens einer Ausführungsform können Datensteuerungsrichtlinien, die einem oder mehreren sicheren Rechenzentren zugeordnet sind, den Durchgang des dritten Modells 308 zurück zu einem oder mehreren Anbietern oder Herstellern erlauben, da das dritte Modell 308 zwar einige Abschnitte vertraulicher oder anderweitig sicherer Informationen enthalten kann, diese Informationen jedoch einen Schwellenwert möglicherweise nicht überschreiten und daher eine oder mehrere sichere Grenzen verlassen dürfen. In mindestens einer Ausführungsform können die Datensteuerungsrichtlinien möglicherweise nicht zulassen, dass das dritte Modell 308 oder dem dritten Modell 308 zugeordnete Informationen eine sichere Grenze verlassen. In mindestens einer Ausführungsform können die Ergebnisse 310 einem oder mehreren Anbietern oder Herstellern zur Unterstützung bei Diagnose- oder Reparaturprozeduren bereitgestellt werden.
  • In mindestens einer Ausführungsform beinhaltet ein Lernansatz 320 einen Anbieter oder Hersteller 322, der ein oder mehrere Modelle 302, 304 entwickelt, wie in 3B veranschaulicht. In mindestens einer Ausführungsform werden die Modelle 302, 304 unter Verwendung von Protokolldaten 324 aus einem oder mehreren offenen Rechenzentren und/oder Rechenzentren, die von einem oder mehreren Anbietern oder Herstellern betrieben oder gesteuert werden, erstellt und aktualisiert. In mindestens einer Ausführungsform können Daten von einer Vielfalt unterschiedlicher Rechenzentren gesammelt werden, die berechtigt sind, Informationen an den Hersteller 322 zurück bereitzustellen, die dann zur Aktualisierung oder Erstellung verschiedener statistischer oder KI-Modelle verwendet werden können. In mindestens einer Ausführungsform wird das erste Modell 302 kontinuierlich aktualisiert, wenn neue Protokolldaten 324 bereitgestellt werden, und zwar mindestens teilweise auf der Grundlage des zweiten Modells 304 und der Protokolldaten 324, neben anderen Informationen. In mindestens einer Ausführungsform kann der Hersteller 322 dem sicheren Rechenzentrum 326 ein zweites Modell 304 bereitstellen, wobei das sichere Rechenzentrum 326 intern erfasste Protokolldaten 306 kombinieren kann, um das zweite Modell 304 abzustimmen oder anderweitig anzupassen, um ein drittes Modell 308 zu erzeugen, das speziell auf bestimmte, dem sicheren Rechenzentrum 326 zugeordnete Komponenten abgestimmt sein kann. In mindestens einer Ausführungsform können die Protokolldaten 306 auch unter Verwendung des dritten Modells 308 bewertet werden, um Ergebnisse 310 für die Bewertung zu erzeugen. In mindestens einer Ausführungsform kann der Hersteller 322 aktualisierte Modelle an das sichere Rechenzentrum 326 für eine fortgesetzte Abstimmung und Anpassung unter Verwendung der Protokolldaten 324 bereitstellen. In mindestens einer Ausführungsform kann das sichere Rechenzentrum 326 das zweite Modell 304 zur Verwendung mit bestimmten Komponenten abstimmen oder anderweitig anpassen. In mindestens einer Ausführungsform können die Ergebnisse 310 dann erzeugt und verwendet werden, um Diagnose- oder Reparaturinformationen vom Hersteller zu konsultieren oder anderweitig zu erhalten, wenn die Datenübertragungsrichtlinien es erlauben, dass solche Informationen die sicheren Grenzen des sicheren Rechenzentrums 326 verlassen.
  • In mindestens einer Ausführungsform können Datensteuerungsrichtlinien eine Menge oder Art von Informationen verhindern oder anderweitig einschränken, die außerhalb der sicheren Grenzen eines oder mehrerer sicherer Rechenzentren übertragen werden können. In mindestens einer Ausführungsform können sichere Rechenzentren möglicherweise nicht in der Lage sein, Informationen zur Unterstützung bei der Fehlerdiagnose oder zum Erhalt von Anweisungen zur Korrektur festgestellter Fehler zu übermitteln. In mindestens einer Ausführungsform können eine oder mehrere Verschlüsselungstechniken sichere Rechenzentrumsrichtlinien aufrechterhalten und gleichzeitig auch die Informationsübertragung ermöglichen. In mindestens einer Ausführungsform werden eine oder mehrere Verschlüsselungstechniken mit der Operation eines oder mehrerer trainierter maschineller Lernmodelle kombiniert, um Informationen zu bewerten, ohne die Daten zu entschlüsseln, sodass die Protokolldaten des sicheren Rechenzentrums nicht offengelegt werden oder anderweitig gegen die Datensteuerungsrichtlinien verstoßen. In mindestens einer Ausführungsform beruhen eine oder mehrere Verschlüsselungstechniken mindestens teilweise auf Anwendungsmodellen und spezifischen Operationen für Anwendungsmodelle. In mindestens einer Ausführungsform werden ein oder mehrere Verschlüsselungsmerkmale identifiziert und für eine oder mehrere Verschlüsselungstechniken vor der Übertragung von Daten verwendet. In mindestens einer Ausführungsform werden ein oder mehrere Modelle mit verschlüsselten Daten ausgeführt, ohne die verschlüsselten Daten zu entschlüsseln, um ein oder mehrere verschlüsselte Ergebnisprotokolle zu erzeugen, die innerhalb der Grenzen sicherer Rechenzentren entschlüsselt werden können. In mindestens einer Ausführungsform beinhalten eine oder mehrere Verschlüsselungstechniken mindestens teilweise eine homomorphe Verschlüsselung. In mindestens einer Ausführungsform kann die homomorphe Verschlüsselung ein oder mehrere Frameworks wie etwa Encrypt-Everything-Everywhere (E3) oder SHEEP verwenden, die eine oder mehrere Bibliotheken wie etwa HElib, SEAL, PALISADE, HEAAN oder andere ausführen können.
  • In mindestens einer Ausführungsform kann eine Verschlüsselungsumgebung 400 einen internen Fluss 402 und einen externen Fluss 404 beinhalten, wie in 4 veranschaulicht. In mindestens einer Ausführungsform kann der interne Fluss 402 einem oder mehreren Anbietern oder Herstellern zugeordnet sein, und der externe Fluss 404 kann einem oder mehreren sicheren Rechenzentren zugeordnet sein. In mindestens einer Ausführungsform können sichere Rechenzentren mindestens einen Abschnitt der Daten innerhalb einer sicheren Grenze gemäß einer oder mehreren Datensteuerungsrichtlinien halten. In mindestens einer Ausführungsform können verschlüsselte Daten über eine oder mehrere sichere Grenzen übertragen werden, während eine oder mehrere Datensteuerungsrichtlinien eingehalten werden.
  • In mindestens einer Ausführungsform kann ein Anwendungsmodell 406 einem oder mehreren trainierten maschinellen Lernsystemen zugeordnet sein. In mindestens einer Ausführungsform beinhaltet das Anwendungsmodell 406 einen Satz von Regeln oder Operationen, die an Eingabedaten ausgeführt werden, um ein Ergebnis zu inferenzieren oder zu erzeugen, wie etwa ein voraussichtliches Fehlerdatum oder ein diagnostisches Ergebnis, das den Eingabeinformationen zugeordnet ist. In mindestens einer Ausführungsform sind Eingabeinformationen Protokolldaten für ein oder mehrere sichere Rechenzentren. In mindestens einer Ausführungsform werden die Modelloperationen 408 aus verschiedenen Anwendungsmodellen 406 extrahiert, wobei ein erstes Anwendungsmodell andere Operationen aufweisen kann als ein zweites Anwendungsmodell. In mindestens einer Ausführungsform können die Modelloperationen verschiedene mathematische oder statistische Analyseoperationen beinhalten, die an Eingabedaten durchgeführt werden. In mindestens einer Ausführungsform können die Modelloperationen ferner einen oder mehrere Vorverarbeitungsschritte beinhalten. In mindestens einer Ausführungsform können die Modelloperationen eine oder mehrere Datentransformationen beinhalten, die dem Anwendungsmodell 406 zugeordnet sind.
  • In mindestens einer Ausführungsform können Modelloperationen 408 verwendet werden, um ein oder mehrere Merkmale 410 zu bestimmen, die einer Verschlüsselungsoperation zugeordnet sind. In mindestens einer Ausführungsform beinhalten die Verschlüsselungsoperationen die homomorphe Verschlüsselung und die Merkmale 410 sind homomorphen Verschlüsselungsmerkmalen zugeordnet. In mindestens einer Ausführungsform ermöglichen die Merkmale 410 die Durchführung von Operationen mit verschlüsselten Daten unter Beibehaltung der Funktionalität des Anwendungsmodells 406. In mindestens einer Ausführungsform können die Merkmale 410 für verschiedene Operationen 408, die verschiedenen Modellen 406 zugeordnet sind, variieren.
  • In mindestens einer Ausführungsform werden die Merkmale 410 einem Verschlüsselungsmodul 412 bereitgestellt, um die während des Betriebs eines oder mehrerer Produkte 416 erfassten Protokolldaten 414 zu verschlüsseln. In mindestens einer Ausführungsform sind die Produkte 416 einem sicheren Rechenzentrum zugeordnet und die Protokolldaten 414 weisen eine oder mehrere Datensteuerungsrichtlinien auf, sodass die Protokolldaten 414 nicht über eine oder mehrere sichere Grenzen des sicheren Rechenzentrums übertragen werden können. In mindestens einer Ausführungsform werden die Protokolldaten 414 dem Verschlüsselungsmodul 412 bereitgestellt, das die Merkmale 410 verwendet, um verschlüsselte Protokolle 418 zu erzeugen. In mindestens einer Ausführungsform werden verschlüsselte Protokolle 418 erstellt und dann zur Verwendung mit Ausführungsmodellen 420 bereitgestellt.
  • In mindestens einer Ausführungsform werden ein oder mehrere Anwendungsmodelle 406 unter Verwendung mindestens eines Abschnitts der verschlüsselten Protokolle 418 als Eingabedaten ausgeführt. In mindestens einer Ausführungsform werden die verschlüsselten Protokolle 418 vor der Ausführung innerhalb von Anwendungsmodellen 406 nicht entschlüsselt. In mindestens einer Ausführungsform werden die Ergebnisse 422 als Reaktion auf die Modellausführung 420 erzeugt, wobei die Ergebnisse 422 ebenfalls verschlüsselt werden. In mindestens einer Ausführungsform können die Ergebnisse 422 innerhalb des externen Datenflusses 404 zur Entschlüsselung 424 zurückübertragen werden. In mindestens einer Ausführungsform beinhalten die Ergebnisse 422 Diagnose- oder Reparaturinformationen, die innerhalb eines oder mehrerer sicheren Rechenzentren verwendet werden können.
  • In mindestens einer Ausführungsform kann ein Prozess 500 zur Bereitstellung von Diagnoseunterstützung für ein sicheres Rechenzentrum, wie in 5A veranschaulicht, durchgeführt werden. In mindestens einer Ausführungsform werden ein oder mehrere Modelle, die der Rechenzentrumsdiagnose zugeordnet sind, empfangen 502. In mindestens einer Ausführungsform werden ein oder mehrere Modelle von einem Anbieter oder Hersteller erzeugt, der einer oder mehreren Komponenten eines oder mehrerer sicherer Rechenzentren zugeordnet ist. In mindestens einer Ausführungsform werden ein oder mehrere Modelle unter Verwendung der innerhalb vom sicheren Rechenzentrum erfassten Protokolldaten ausgeführt 504. In mindestens einer Ausführungsform können die innerhalb eines sicheren Rechenzentrums erfassten Protokolldaten einer oder mehreren Datensteuerungsrichtlinien zugeordnet sein, bei denen die Übertragung außerhalb einer sicheren Grenze eingeschränkt ist. In mindestens einer Ausführungsform werden ein oder mehrere Modelle mindestens teilweise basierend auf Protokolldaten auf sichere Rechenzentren abgestimmt oder anderweitig spezialisiert. In mindestens einer Ausführungsform können ein oder mehrere Ergebnisse eines oder mehrerer Modelle an eine oder mehrere externe Parteien bereitgestellt werden 506. In mindestens einer Ausführungsform können eine oder mehrere externe Parteien diagnostische Informationen mindestens teilweise basierend auf einem oder mehreren Ergebnissen bereitstellen 508. In mindestens einer Ausführungsform können ein oder mehrere aktualisierte Modelle für das sichere Rechenzentrum bereitgestellt werden 510.
  • In mindestens einer Ausführungsform kann ein Prozess 520 zur Bereitstellung von Diagnosemodellen für sichere Rechenzentren, wie in 5B veranschaulicht, durchgeführt werden. In mindestens einer Ausführungsform werden ein oder mehrere Diagnosemodelle erzeugt 522. In mindestens einer Ausführungsform werden ein oder mehrere Diagnosemodelle an ein oder mehrere sichere Rechenzentren bereitgestellt 524. In mindestens einer Ausführungsform werden Protokolldaten von einem oder mehreren offenen Rechenzentren empfangen 526. In mindestens einer Ausführungsform werden ein oder mehrere Diagnosemodelle unter Verwendung von Protokolldaten aktualisiert oder verfeinert 528. In mindestens einer Ausführungsform werden ein oder mehrere aktualisierte Diagnosemodelle an ein oder mehrere sichere Rechenzentren bereitgestellt 530.
  • In mindestens einer Ausführungsform kann ein Prozess 540 zur Bereitstellung einer diagnostischen Bewertung durchgeführt werden, wie in 5C gezeigt. In mindestens einer Ausführungsform werden ein oder mehrere Anwendungsmodelle für die Durchführung einer oder mehrerer diagnostischer Bewertungen ausgewählt 542. In mindestens einer Ausführungsform werden eine oder mehrere Modelloperationen extrahiert 544. In mindestens einer Ausführungsform werden ein oder mehrere Merkmale mindestens teilweise auf der Grundlage einer oder mehrerer Modelloperationen bestimmt 546. In mindestens einer Ausführungsform werden ein oder mehrere Merkmale zur Verwendung mit einer Verschlüsselungsoperation bereitgestellt 548. In mindestens einer Ausführungsform werden verschlüsselte Protokolldaten empfangen 550. In mindestens einer Ausführungsform werden ein oder mehrere Anwendungsmodelle unter Verwendung von verschlüsselten Protokolldaten als Eingabe ausgeführt, ohne dass die verschlüsselten Protokolldaten entschlüsselt werden 552. In mindestens einer Ausführungsform werden ein oder mehrere verschlüsselte Ergebnisse an einen Betreiber eines sicheren Rechenzentrums 554 bereitgestellt.
  • SERVER UND RECHENZENTREN
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte Netzwerkserver und rechenzentrumbasierte Systeme dar, die verwendet werden können, um mindestens eine Ausführungsform zu implementieren.
  • 6 veranschaulicht ein verteiltes System 600 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet das verteilte System 600 eine oder mehrere Client-Rechenvorrichtungen 602, 604, 606 und 608, die konfiguriert sind, um eine Client-Anwendung, wie etwa einen Webbrowser, einen proprietären Client und/oder Variationen davon, über ein oder mehrere Netzwerke 610 auszuführen und zu betreiben. In mindestens einer Ausführungsform kann der Server 612 über das Netzwerk 610 kommunikativ mit entfernten Client-Rechenvorrichtungen 602, 604, 606 und 608 gekoppelt sein.
  • In mindestens einer Ausführungsform kann der Server 612 ausgelegt sein, um einen oder mehrere Dienste oder eine oder mehrere Softwareanwendungen auszuführen, wie etwa Dienste und Anwendungen, die Sitzungsaktivitäten des Zugriffs mit einmaliger Anmeldung (single sign-on - SSO) über mehrere Rechenzentren hinweg verwalten können. In mindestens einer Ausführungsform kann der Server 612 auch andere Dienste bereitstellen oder können Softwareanwendungen nicht virtuelle und virtuelle Umgebungen beinhalten. In mindestens einer Ausführungsform können diese Dienste Benutzern der Client-Rechenvorrichtungen 602, 604, 606 und/oder 608 als webbasierte oder Cloud-Dienste oder im Rahmen eines Software-als-Dienst(Software as a Service - SaaS)-Modells angeboten werden. In mindestens einer Ausführungsform können Benutzer, die Client-Rechenvorrichtungen 602, 604, 606 und/oder 608 betreiben, wiederum eine oder mehrere Client-Anwendungen nutzen, um mit dem Server 612 zu interagieren, um durch diese Komponenten bereitgestellte Dienste zu nutzen.
  • In mindestens einer Ausführungsform sind die Softwarekomponenten 618, 620 und 622 des Systems 600 auf dem Server 612 implementiert. In mindestens einer Ausführungsform können eine oder mehrere Komponenten des Systems 600 und/oder durch diese Komponenten bereitgestellte Dienste auch durch eine oder mehrere der Client-Rechenvorrichtungen 602, 604, 606 und/oder 608 implementiert sein. In mindestens einer Ausführungsform können Benutzer, die Client-Rechenvorrichtungen betreiben, dann eine oder mehrere Client-Anwendungen nutzen, um durch diese Komponenten bereitgestellte Dienste zu verwenden. In mindestens einer Ausführungsform können diese Komponenten in Hardware, Software, Firmware oder Kombinationen davon implementiert sein. Es versteht sich, dass verschiedene unterschiedliche Systemkonfigurationen möglich sind, die sich von dem verteilten System 600 unterscheiden können. Die in 6 gezeigte Ausführungsform ist somit mindestens eine Ausführungsform eines verteilten Systems zum Implementieren einer Ausführungsform eines Systems und soll nicht einschränkend sein.
  • In mindestens einer Ausführungsform können die Client-Rechenvorrichtungen 602, 604, 606 und/oder 608 verschiedene Arten von Rechensystemen beinhalten. In mindestens einer Ausführungsform kann eine Client-Rechenvorrichtung transportable Vorrichtungen (z. B. ein iPhone@, Mobiltelefon, ein iPad@, ein Computertablet, einen persönlichen digitalen Assistenten (personal digital assistant - PDA)) oder tragbare Vorrichtungen (z. B. ein Google Glass® mit am Kopf montierter Anzeige) beinhalten, auf denen Software wie Microsoft Windows Mobile® und/oder eine Vielfalt von mobilen Betriebssystemen wie iOS, Windows Phone, Android, BlackBerry 10, Palm OS und/oder Variationen davon ausgeführt wird. In mindestens einer Ausführungsform können Vorrichtungen verschiedene Anwendungen unterstützen, wie etwa verschiedene internetbezogene Anwendungen, E-Mail, Kurznachrichtendienst(short message service - SMS)-Anwendungen, und können verschiedene andere Kommunikationsprotokolle verwenden. In mindestens einer Ausführungsform können Client-Rechenvorrichtungen auch Allzweck-Personalcomputer beinhalten, einschließlich, mittels mindestens einer Ausführungsform, Personalcomputer und/oder Laptop-Computer, auf denen verschiedene Versionen von Microsoft Windows®, Apple Macintosh® und/oder Linux-Betriebssysteme laufen.
  • In mindestens einer Ausführungsform können Client-Rechenvorrichtungen Workstation-Computer sein, auf denen ein beliebiges von einer Vielfalt von kommerziell erhältlichen UNIX® oder UNIX-ähnlichen Betriebssystemen läuft, einschließlich ohne Einschränkung eine Vielfalt von GNU/Linux-Betriebssystemen, wie beispielsweise Google Chrome OS. In mindestens einer Ausführungsform können Client-Rechenvorrichtungen auch elektronische Vorrichtungen beinhalten, wie etwa einen Thin-Client-Computer, ein internetfähiges Spielsystem (z. B. eine Microsoft Xbox-Spielekonsole mit oder ohne Kinect®-Gesteneingabevorrichtung) und/oder eine persönliche Nachrichtenvorrichtung, die in der Lage ist, über Netzwerk(e) 610 zu kommunizieren. Auch wenn das verteilte System 600 in 6 mit vier Client-Rechenvorrichtungen gezeigt ist, kann eine beliebige Anzahl von Client-Rechenvorrichtungen unterstützt werden. Andere Vorrichtungen, wie etwa Vorrichtungen mit Sensoren usw., können mit dem Server 612 interagieren.
  • In mindestens einer Ausführungsform kann/können das/die Netzwerk(e) 610 in dem verteilten System 600 jede Art von Netzwerk sein, das Datenkommunikationen unter Verwendung eines beliebigen einer Vielfalt von verfügbaren Protokollen unterstützen kann, einschließlich ohne Einschränkung TCP/IP (transmission control protocol/Internet protocol - Übertragungssteuerungsprotokoll/Internetprotokoll), SNA (System netzwerk architektur), IPX (Internet Packet Exchange), AppleTalk und/oder Variationen davon. In mindestens einer Ausführungsform kann/können das/die Netzwerk(e) 610 ein lokales Netzwerk (local area network - LAN), Netzwerke auf Grundlage von Ethernet, Token-Ring, ein Weitverkehrsnetzwerk, Internet, ein virtuelles Netzwerk, ein virtuelles privates Netzwerk (VPN), ein Intranet, ein Extranet, ein öffentliches Telefonnetzwerk (public switched telephone network - PSTN), ein Infrarotnetzwerk, ein drahtloses Netzwerk (z. B. ein Netzwerk, das gemäß einem beliebigen der Protokollsuite vom Institute of Electrical and Electronics (IEEE) 802.11, Bluetooth® und/oder einem beliebigen anderen drahtlosen Protokoll arbeitet) und/oder eine beliebige Kombination dieser und/oder anderer Netzwerke sein.
  • In mindestens einer Ausführungsform kann der Server 612 aus einem oder mehreren Allzweckcomputern, spezialisierten Server-Computern (einschließlich in mindestens einer Ausführungsform PC(Personal Computer)-Servern, UNIX®-Servern, Midrange-Servern, Mainrahmen, Rack-montierten Servern usw.), Serverfarmen, Serverclustern oder jede andere geeignete Anordnung und/oder Kombination bestehen. In mindestens einer Ausführungsform kann der Server 612 eine oder mehrere virtuelle Maschinen, auf denen virtuelle Betriebssysteme laufen, oder andere Rechenarchitekturen mit Virtualisierung beinhalten. In mindestens einer Ausführungsform können ein oder mehrere flexible Pools logischer Speichervorrichtungen virtualisiert werden, um virtuelle Speichervorrichtungen für einen Server zu verwalten. In mindestens einer Ausführungsform können virtuelle Netzwerke durch den Server 612 unter Verwendung von softwaredefinierten Netzwerken gesteuert werden. In mindestens einer Ausführungsform kann der Server 612 ausgelegt sein, um einen oder mehrere Dienste oder eine oder mehrere Softwareanwendungen auszuführen.
  • In mindestens einer Ausführungsform kann der Server 612 ein beliebiges Betriebssystem sowie ein beliebiges im Handel erhältliches Server-Betriebssystem ausführen. In mindestens einer Ausführungsform kann der Server 612 auch eine beliebige einer Vielfalt zusätzlicher Serveranwendungen und/oder Mid-Tier-Anwendungen ausführen, einschließlich HTTP-Server (Hypertext Transport Protocol), FTP-Server (File Transfer Protocol), CGI-Server (Common Gateway Interface), JAVAO-Server, Datenbankserver und/oder Variationen davon. In mindestens einer Ausführungsform beinhalten beispielhafte Datenbankserver ohne Einschränkung diejenigen, die im Handel von Oracle, Microsoft, Sybase, IBM (International Business Machines) erhältlich sind, und/oder Variationen davon.
  • In mindestens einer Ausführungsform kann der Server 612 eine oder mehrere Anwendungen beinhalten, um Datenfeeds und/oder Ereignisaktualisierungen zu analysieren und zu konsolidieren, die von Benutzern der Client-Rechenvorrichtungen 602, 604, 606 und 608 empfangen werden. In mindestens einer Ausführungsform können Datenfeeds und/oder Ereignisaktualisierungen Twitter®-Feeds, Facebook®-Aktualisierungen oder Echtzeitaktualisierungen, die von einer oder mehreren Drittanbieter-Informationsquellen empfangen werden, und kontinuierliche Datenströme, die Echtzeitereignisse in Bezug auf Sensordatenanwendungen, Finanzticker, Netzwerkleistungsmesstools (z. B. Netzwerküberwachungs- und Verkehrsverwaltungsanwendungen), Clickstream-Analysetools, Automobilverkehrsüberwachung beinhalten können, und/oder Variationen davon beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann der Server 612 auch eine oder mehrere Anwendungen beinhalten, um Datenfeeds und/oder Ereignisaktualisierungen über eine oder mehrere Anzeigevorrichtungen der Client-Rechenvorrichtungen 602, 604, 606 und 608 anzuzeigen.
  • In mindestens einer Ausführungsform kann das verteilte System 600 auch eine oder mehrere Datenbanken 614 und 616 beinhalten. In mindestens einer Ausführungsform können Datenbanken einen Mechanismus zum Speichern von Informationen bereitstellen, wie etwa Benutzerinteraktionsinformationen, Nutzungsmusterinformationen, Anpassungsregelinformationen und andere Informationen. In mindestens einer Ausführungsform können sich die Datenbanken 614 und 616 an einer Vielfalt von Stellen befinden. In mindestens einer Ausführungsform können sich eine oder mehrere der Datenbanken 614 und 616 auf einem nicht transitorischen Speichermedium lokal auf (und/oder in) dem Server 612 befinden. In mindestens einer Ausführungsform können die Datenbanken 614 und 616 vom Server 612 entfernt sein und mit dem Server 612 über eine netzwerkbasierte oder dedizierte Verbindung kommunizieren. In mindestens einer Ausführungsform können sich die Datenbanken 614 und 616 in einem Speicherbereichsnetzwerk (storage-area network - SAN) befinden. In mindestens einer Ausführungsform können alle erforderlichen Dateien zum Durchführen von Funktionen, die dem Server 612 zugeschrieben werden, je nach Bedarf lokal auf dem Server 612 und/oder entfernt gespeichert sein. In mindestens einer Ausführungsform können die Datenbanken 614 und 616 relationale Datenbanken beinhalten, wie etwa Datenbanken, die ausgelegt sind, um Daten als Reaktion auf SQL-formatierte Befehle zu speichern, zu aktualisieren und abzurufen.
  • 7 veranschaulicht ein beispielhaftes Rechenzentrum 700, in dem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform beinhaltet das Rechenzentrum 700 eine Rechenzentruminfrastrukturschicht 710, eine Frameworkschicht 720, eine Softwareschicht 730 und eine Anwendungsschicht 740.
  • In mindestens einer Ausführungsform kann die Rechenzentrumsinfrastrukturschicht 710 wie in 7 dargestellt einen Ressourcen-Orchestrator 712, gruppierte Rechenressourcen 714 und Knoten-Rechenressourcen („Knoten-CRs“) 716(1)-716(N) beinhalten, wobei „N“ eine beliebige ganze positive Zahl darstellt. In mindestens einer Ausführungsform können die Knoten-CRs 716(1)-716(N) eine beliebige Anzahl von Zentraleinheiten („CPUs“) oder anderen Prozessoren (einschließlich Beschleunigern, feldprogrammierbarer Gatearrays (FPGAs), Grafikprozessoren usw.), Speichervorrichtungen 718(1)-718(N) (z. B. dynamischen Festwertspeicher, Festkörperspeicher oder Festplattenlaufwerke), Vorrichtungen zur Netz-Eingabe/Ausgabe (network input/output - „NW-I/O“), 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-CRs aus den Knoten-CRs 716(1)-716(N) um einen Server handeln, der eine oder mehrere der vorstehend erwähnten Rechenressourcen aufweist.
  • In mindestens einer Ausführungsform können gruppierte Rechenressourcen 714 getrennte Gruppierungen von Knoten-CRs beinhalten, die innerhalb eines oder mehrerer Racks (nicht dargestellt) untergebracht sind, oder vielen Racks, die in Rechenzentren an verschiedenen geografischen Standorten (ebenfalls nicht dargestellt) untergebracht sind. In mindestens einer Ausführungsform können separate Gruppierungen von Knoten-CRs innerhalb der gruppierten Rechenressourcen 714 gruppierte Rechen-, Netzwerk-, Speicher- oder Storage-Ressourcen beinhalten, die zur Unterstützung einer oder mehrerer Arbeitslasten ausgestaltet oder zugewiesen werden können. In mindestens einer Ausführungsform können mehrere Knoten-CRs, die CPUs oder Prozessoren beinhalten, innerhalb eines oder mehrerer Racks gruppiert sein, um Rechenressourcen zum Unterstützen 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 Netz-Switches in beliebiger Kombination beinhalten.
  • In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 712 einen oder mehrere Knoten-CRs 716(1)-716(N) und/oder gruppierte Rechenressourcen 714 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 712 eine Verwaltungseinheit für Software-Design-Infrastruktur („SDI“) für das Rechenzentrum 700 beinhalten. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 712 Hardware, Software oder eine Kombination davon beinhalten.
  • In mindestens einer Ausführungsform beinhaltet die Framework-Schicht 720, wie in 7 dargestellt, einen Aufgaben-Planer 732, einen Konfigurationsmanager 734, einen Ressourcenmanager 736 und ein verteiltes Dateisystem 738. In mindestens einer Ausführungsform kann die Framework-Schicht 720 ein Framework beinhalten, um Software 752 der Softwareschicht 730 und/oder eine oder mehrere Anwendung(en) 742 der Anwendungsschicht 740 zu unterstützen. In mindestens einer Ausführungsform kann/können die Software 752 oder die Anwendung(en) 742 jeweils webbasierte Dienstsoftware oder -anwendungen beinhalten, wie etwa diejenigen, die von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt sind. In mindestens einer Ausführungsform kann die Frameworkschicht 720 eine Art von freiem und Open-Source-Software-Webanwendungs-Framework sein, ohne darauf beschränkt zu sein, wie etwa Apache SparkTM (im Folgenden „Spark“), welches das verteilte Dateisystem 738 für umfangreiche Datenverarbeitungen (z. B. „Big Data“) nutzen kann. In mindestens einer Ausführungsform kann der Aufgaben-Planer 732 einen Spark-Treiber beinhalten, um die Planung von Arbeitslasten zu unterstützen, die durch verschiedene Schichten des Rechenzentrums 700 unterstützt werden. In mindestens einer Ausführungsform kann der Konfigurationsverwalter 734 dazu in der Lage sein, unterschiedliche Schichten, wie etwa die Softwareschicht 730 und die Framework-Schicht 720, einschließlich Spark und des verteilten Dateisystems 738, zu konfigurieren, um umfangreiche Datenverarbeitungen zu unterstützen. In mindestens einer Ausführungsform kann der Ressourcenverwalter 736 dazu in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 738 und des Aufgaben-Planers 732 abgebildet oder zugewiesen sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen die gruppierte Rechenressource 714 auf der Rechenzentrumsinfrastrukturschicht 710 beinhalten. In mindestens einer Ausführungsform kann sich der Ressourcenmanager 736 mit dem Ressourcen-Orchestrator 712 koordinieren, um diese abgebildeten oder zugewiesenen Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die in der Softwareschicht 730 beinhaltete Software 752 Software beinhalten, die durch mindestens Abschnitte der Knoten-CRs 716(1)-716(N), gruppierte Rechenressourcen 714 und/oder das verteilte Dateisystem 738 der Frameworkschicht 720 verwendet werden. In mindestens einer Ausführungsform können eine oder mehrere Arten von Software wie z. B. Internet-Suchsoftware, Software zum Scannen von E-Mail-Viren, Datenbanksoftware und Software für das Streaming von Videoinhalten beinhalten, sind aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform kann/können die Anwendung(en) 742, die in der Anwendungsschicht 740 enthalten ist/sind, eine oder mehrere Arten von Anwendungen beinhalten, die von mindestens Abschnitten der Knoten-CRs 716(1)-716(N), gruppierten Berechnungsressourcen 714 und/oder dem verteilten Dateisystem 738 der Frameworkschicht 720 verwendet werden. In mindestens einer Ausführungsform können eine oder mehrere Arten von Anwendungen eine beliebige Anzahl von Genomanwendungen, eine kognitive Rechenanwendung und eine maschinelle Lernanwendung, einschließlich Trainings- oder Inferenzsoftware, maschinelle Lernsoftware (z. B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernanwendungen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, beinhalten, sind aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform können Konfigurationsverwalter 734, Ressourcenverwalter736 und Ressourcen-Orchestrator 712 eine beliebige Anzahl und Art von selbstmodifizierenden Handlungen auf Grundlage einer beliebigen Menge und Art von Daten umsetzen, die auf jede technisch machbare Weise erfasst werden. In mindestens einer Ausführungsform können selbstmodifizierende Handlungen einen Rechenzentrumsbetreiber des Rechenzentrums 700 davon befreien, möglicherweise schlechte Konfigurationsentscheidungen zu treffen, und möglicherweise nicht ausgelastete und/oder leistungsschwache Abschnitte eines Rechenzentrums vermeiden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum 700 Werkzeuge, Dienste, Software oder andere Ressourcen beinhalten, um ein oder mehrere Modelle zum maschinellen Lernen zu trainieren oder Informationen unter Verwendung eines oder mehrerer Modelle zum maschinellen Lernen gemäß einer oder mehrerer hier beschriebener Ausführungsformen vorherzusagen oder zu inferenzieren. Zum Beispiel kann in mindestens einer Ausführungsform ein Modell des maschinellen Lernens durch das Berechnen von Gewichtungsparametern gemäß einer neuronalen Netzarchitektur unter Verwendung von Software und Computerressourcen trainiert werden, die vorstehend im Hinblick auf das Rechenzentrum 700 beschrieben wurden. In mindestens einer Ausführungsform können trainierte Modelle des maschinellen Lernens verwendet werden, die einem oder mehreren neuronalen Netzen entsprechen, um Informationen unter Verwendung der vorstehend beschriebenen Ressourcen in Bezug auf das Rechenzentrum 700 durch das Verwenden von Gewichtungsparametern zu inferenzieren oder vorherzusagen, die durch eine oder mehrere in dieser Schrift beschriebene Trainingsmethoden berechnet wurden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um Training und/oder Inferenzierung unter Verwendung der oben 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 des Inferenzierens von Informationen zu ermöglichen, wie etwa Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Die Inferenz- und/oder Trainingslogik 1814 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 im System von 7 für Inferenz- oder Vorhersageoperationen verwendet werden, die mindestens teilweise auf Gewichtungsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netze, neuronalen Netzfunktionen und/oder -architekturen oder hier beschriebenen Anwendungsfällen für neuronale Netze berechnet werden.
  • 8 veranschaulicht ein Client-Server-Netzwerk 804, das gemäß mindestens einer Ausführungsform durch eine Vielzahl von miteinander verbundenen Netzwerk-Server-Computern 802 gebildet wird. In mindestens einer Ausführungsform speichert jeder Netzwerk-Server-Computer 802 Daten, auf die andere Netzwerk-Server-Computer 802 und Client-Computer 806 und Netzwerke 808 zugreifen können, die mit einem Weitverkehrsnetzwerk 804 verbunden sind. In mindestens einer Ausführungsform kann sich die Konfiguration eines Client-Server-Netzwerks 804 im Laufe der Zeit ändern, wenn sich Client-Computer 806 und ein oder mehrere Netzwerke 808 mit einem Netzwerk 804 verbinden und von ihm trennen und wenn ein oder mehrere Hauptleitungs-Server-Computer 802 zu einem Netzwerk 804 hinzugefügt oder aus ihm entfernt werden. In mindestens einer Ausführungsform, wenn ein Client-Computer 806 und ein Netzwerk 808 mit Netzwerk-Server-Computern 802 verbunden sind, beinhaltet das Client-Server-Netzwerk einen solchen Client-Computer 806 und ein Netzwerk 808. In mindestens einer Ausführungsform beinhaltet der Begriff Computer jede Vorrichtung oder jede Maschine, die in der Lage ist, Daten zu akzeptieren, vorgeschriebene Prozesse auf Daten anzuwenden und Ergebnisse von Prozessen bereitzustellen.
  • In mindestens einer Ausführungsform speichert das Client-Server-Netzwerk 804 Informationen, auf die Netzwerk-Server-Computer 802, entfernte Netzwerke 808 und Client-Computer 806 zugreifen können. In mindestens einer Ausführungsform werden die Netzwerk-Server-Computer 802 durch Mainframe-Computer, Minicomputer und/oder Mikrocomputer mit jeweils einem oder mehreren Prozessoren gebildet. In mindestens einer Ausführungsform sind die Server-Computer 802 durch drahtgebundene und/oder drahtlose Übertragungsmedien miteinander verbunden, wie etwa leitfähige Drähte, Glasfaserkabel und/oder Mikrowellenübertragungsmedien, Satellitenübertragungsmedien oder andere leitfähige, optische oder elektromagnetische Wellenübertragungsmedien. In mindestens einer Ausführungsform greifen Client-Computer 806 auf einen Netzwerk-Server-Computer 802 durch ein ähnliches drahtgebundenes oder ein drahtloses Übertragungsmedium zu. In mindestens einer Ausführungsform kann sich ein Client-Computer 806 mit einem Client-Server-Netzwerk 804 unter Verwendung eines Modems und eines standardmäßigen Telefonkommunikationsnetzwerks verbinden. In mindestens einer Ausführungsform können auch alternative Trägersysteme wie Kabel- und Satellitenkommunikationssysteme verwendet werden, um sich mit dem Client-Server-Netzwerk 804 zu verbinden. In mindestens einer Ausführungsform können andere nicht öffentliche oder zeitgeteilte Trägersysteme verwendet werden. In mindestens einer Ausführungsform ist das Netzwerk 804 ein globales Informationsnetzwerk, wie etwa das Internet. In mindestens einer Ausführungsform ist das Netzwerk ein nicht öffentliches Intranet, das ähnliche Protokolle wie das Internet verwendet, jedoch mit zusätzlichen Sicherheitsmaßnahmen und eingeschränkten Zugriffssteuerungen. In mindestens einer Ausführungsform ist das Netzwerk 804 ein nicht öffentliches oder halbprivates Netzwerk, das proprietäre Kommunikationsprotokolle verwendet.
  • In mindestens einer Ausführungsform ist der Client-Computer 806 ein beliebiger Endbenutzer-Computer und kann auch ein Mainframe-Computer, ein Minicomputer oder ein Mikrocomputer mit einem oder mehreren Mikroprozessoren sein. In mindestens einer Ausführungsform kann der Server-Computer 802 manchmal als ein Client-Computer fungieren, der auf einen anderen Server-Computer 802 zugreift. In mindestens einer Ausführungsform kann das entfernte Netzwerk 808 ein lokales Netzwerk, ein Netzwerk, das durch einen unabhängigen Dienstanbieter (independent service provider - ISP) für das Internet zu einem Weitverkehrsnetzwerk hinzugefügt wird, oder eine andere Gruppe von Computern, die durch drahtgebundene oder drahtlose Übertragungsmedien mit einer Konfiguration, die entweder feststehend ist oder sich im Laufe der Zeit ändert, sein. In mindestens einer Ausführungsform können sich Client-Computer 806 unabhängig oder über ein entferntes Netzwerk 808 mit einem Netzwerk 804 verbinden und darauf zugreifen.
  • 9 veranschaulicht ein Computernetzwerk 908, das gemäß mindestens einer Ausführungsform eine oder mehrere Rechenmaschinen verbindet. In mindestens einer Ausführungsform kann das Netzwerk 908 eine beliebige Art einer elektronisch verbundenen Gruppe von Computern sein, einschließlich beispielsweise der folgenden Netzwerke: Internet, Intranet, Lokale Area Netzwerke (LAN), Weitverkehrsnetzwerke (WAN) oder eine miteinander verbundene Kombination dieser Netzwerkarten. In mindestens einer Ausführungsform kann die Konnektivität innerhalb eines Netzwerks 908 ein entferntes Modem, Ethernet (IEEE 802.3), Token Ring (IEEE 802.5), Fiber Distributed Datalink Interface (FDDI), Asynchronous Transfer Mode (ATM) oder ein beliebiges anderes Kommunikationsprotokoll sein. In mindestens einer Ausführungsform können Rechenvorrichtungen, die mit einem Netzwerk verbunden sind, ein Desktop, ein Server, eine transportable Vorrichtung, ein Handgerät, eine Set-Top-Box, ein persönlicher digitaler Assistent (PDA), ein Endgerät oder eine beliebige andere gewünschte Art oder Konfiguration sein. In mindestens einer Ausführungsform können netzwerkverbundene Vorrichtungen abhängig von ihrer Funktionalität in der Verarbeitungsleistung, dem internen Speicher und anderen Leistungsaspekten stark variieren.
  • In mindestens einer Ausführungsform kann die Kommunikation innerhalb eines Netzwerks und zu oder von Rechenvorrichtungen, die an ein Netzwerk angeschlossen sind, entweder drahtgebunden oder drahtlos sein. In mindestens einer Ausführungsform kann das Netzwerk 908 mindestens teilweise das weltweite öffentliche Internet beinhalten, das im Allgemeinen eine Vielzahl von Benutzern gemäß einem Client-Server-Modell gemäß einer Spezifikation für Übertragungssteuerungsprotokoll/Internetprotokoll (TCP/IP) verbindet. In mindestens einer Ausführungsform ist das Client-Server-Netzwerk ein vorherrschendes Modell für die Kommunikation zwischen zwei Computern. In mindestens einer Ausführungsform gibt ein Client-Computer („Client“) einen oder mehrere Befehle an einen Server-Computer („Server“) aus. In mindestens einer Ausführungsform führt der Server Client-Befehle aus, indem er auf verfügbare Netzwerkressourcen zugreift und Informationen gemäß den Client-Befehlen an einen Client zurückgibt. In mindestens einer Ausführungsform wird Client-Computersystemen und Netzwerkressourcen, die auf Netzwerkservern resident sind, eine Netzwerkadresse zur Identifizierung während der Kommunikation zwischen Elementen eines Netzwerks zugewiesen. In mindestens einer Ausführungsform beinhalten Kommunikationen von anderen netzwerkverbundenen Systemen zu Servern eine Netzwerkadresse eines relevanten Servers/einer relevanten Netzwerkressource als Teil der Kommunikation, sodass ein geeignetes Ziel von Daten bzw. einer Anfrage als ein Empfänger identifiziert wird. In mindestens einer Ausführungsform, wenn ein Netzwerk 908 das globale Internet umfasst, ist eine Netzwerkadresse eine IP-Adresse in einem TCP/IP-Format, die Daten mindestens teilweise an ein E-Mail-Konto, eine Website oder ein anderes auf einem Server residentes Internet-Tool routen kann. In mindestens einer Ausführungsform können Informationen und Dienste, die auf Netzwerkservern resident sind, für einen Webbrowser eines Client-Computers über einen Domänennamen (z. B. www.site.com) verfügbar sein, der einer IP-Adresse eines Netzwerk-Servers zugeordnet ist.
  • In mindestens einer Ausführungsform ist eine Vielzahl von Clients 902, 904 und 906 über entsprechende Kommunikationsverbindungen mit einem Netzwerk 908 verbunden. In mindestens einer Ausführungsform kann jeder dieser Clients über eine beliebige gewünschte Kommunikationsform auf ein Netzwerk 908 zugreifen, wie etwa über eine Einwahlmodemverbindung, eine Kabelverbindung, eine digitale Teilnehmerleitung (digital subscriber line - DSL), eine drahtlose oder eine Satellitenverbindung oder eine beliebige andere Form der Kommunikation. In mindestens einer Ausführungsform kann jeder Client unter Verwendung einer beliebigen Maschine kommunizieren, die mit einem Netzwerk 908 kompatibel ist, wie etwa ein Personalcomputer (PC), eine Arbeitsstation, ein dediziertes Endgerät, ein persönlicher Datenassistent (PDA) oder eine andere ähnliche Ausrüstung. In mindestens einer Ausführungsform können sich die Clients 902, 904 und 906 in einem gleichen geografischen Gebiet befinden oder nicht.
  • In mindestens einer Ausführungsform ist eine Vielzahl von Servern 910, 912 und 914 mit einem Netzwerk 918 verbunden, um Clients zu bedienen, die mit dem Netzwerk 918 in Kommunikation stehen. In mindestens einer Ausführungsform ist jeder Server typischerweise ein leistungsstarker Computer oder eine leistungsstarke Vorrichtung, die Netzwerkressourcen verwaltet und auf Client-Befehle reagiert. In mindestens einer Ausführungsform beinhalten Server computerlesbare Datenspeichermedien, wie etwa Festplattenlaufwerke und RAM-Speicher, die Programmanweisungen und Daten speichern. In mindestens einer Ausführungsform führen die Server 910, 912, 914 Anwendungsprogramme aus, die auf Client-Befehle reagieren. In mindestens einer Ausführungsform kann der Server 910 eine Webserver-Anwendung zum Reagieren auf Client-Anfragen nach HTML-Seiten ausführen und kann auch eine Mail-Server-Anwendung zum Empfangen und Weiterleiten von elektronischer Post ausführen. In mindestens einer Ausführungsform können auch andere Anwendungsprogramme, wie etwa ein FTP-Server oder ein Medienserver zum Streamen von Audio-/Videodaten an Clients, auf einem Server 910 ausgeführt werden. In mindestens einer Ausführungsform können unterschiedliche Server dazu bestimmt sein, unterschiedliche Tasks auszuführen. In mindestens einer Ausführungsform kann der Server 910 ein dedizierter Webserver sein, der Ressourcen in Bezug auf Websites für verschiedene Benutzer verwaltet, während ein Server 912 dazu bestimmt sein kann, eine Verwaltung von elektronischer Post (E-Mail) bereitzustellen. In mindestens einer Ausführungsform können andere Server für Medien (Audio, Video usw.), ein Dateiübertragungsprotokoll (file transfer protocol - FTP) oder eine Kombination von beliebigen zwei oder mehr Diensten, die typischerweise verfügbar sind oder über ein Netzwerk bereitgestellt werden, bestimmt sein. In mindestens einer Ausführungsform kann sich jeder Server an einem Standort befinden, der mit dem anderen Server identisch ist oder sich davon unterscheidet. In mindestens einer Ausführungsform kann es mehrere Server geben, die gespiegelte Tasks für Benutzer ausführen, wodurch Datenstaus verringert werden oder Datenverkehr, der zu und von einem einzelnen Server geleitet wird, minimiert wird. In mindestens einer Ausführungsform stehen die Server 910, 912, 914 unter der Steuerung eines Webhosting-Anbieters in einem Unternehmen zur Pflege und Bereitstellung von Drittanbieter-Inhalten Dritter über ein Netzwerk 918.
  • In mindestens einer Ausführungsform liefern Webhosting-Anbieter Dienste an zwei unterschiedliche Arten von Clients. In mindestens einer Ausführungsform fordert eine Art, die als Browser bezeichnet werden kann, Inhalt von den Servern 910, 912, 914 an, wie etwa Webseiten, E-Mail-Nachrichten, Videoclips usw. In mindestens einer Ausführungsform beauftragt eine zweite Art, die als Benutzer bezeichnet werden kann, einen Webhosting-Anbieter eine Netzwerkressource, wie etwa eine Website, zu pflegen und für Browser verfügbar zu machen. In mindestens einer Ausführungsform schließen Benutzer einen Vertrag mit einem Webhosting-Anbieter ab, um Speicherplatz, Prozessorkapazität und Kommunikationsbandbreite für ihre gewünschte Netzwerkressource gemäß einer Menge von Serverressourcen verfügbar zu machen, die ein Benutzer nutzen möchte.
  • In mindestens einer Ausführungsform müssen Anwendungsprogramme, die von Servern gehostete Netzwerkressourcen verwalten, ordnungsgemäß konfiguriert sein, damit ein Webhosting-Anbieter Dienste für beide Kunden bereitstellen kann. In mindestens einer Ausführungsform beinhaltet der Programmkonfigurationsprozess das Definieren eines Satzes von Parametern, die mindestens teilweise die Reaktion eines Anwendungsprogramms auf Browseranforderungen steuern und die auch mindestens teilweise Serverressourcen definieren, die einem konkreten Benutzer zur Verfügung stehen.
  • In einer Ausführungsform steht ein Intranet-Server 916 über eine Kommunikationsverbindung mit einem Netzwerk 908 in Kommunikation. In mindestens einer Ausführungsform steht der Intranet-Server 916 mit einem Servermanager 918 in Kommunikation. In mindestens einer Ausführungsform umfasst der Servermanager 918 eine Datenbank mit Konfigurationsparametern eines Anwendungsprogramms, die in den Servern 910, 912, 914 genutzt werden. In mindestens einer Ausführungsform modifizieren Benutzer eine Datenbank 920 über ein Intranet 916 und interagiert ein Servermanager 918 mit Servern 910, 912, 914, um Anwendungsprogrammparameter so zu modifizieren, dass sie mit einem Inhalt einer Datenbank übereinstimmen. In mindestens einer Ausführungsform meldet sich ein Benutzer bei einem Intranet-Server 916 an, indem er über den Computer 902 eine Verbindung zu einem Intranet 916 herstellt und Authentifizierungsinformationen, wie etwa einen Benutzernamen und ein Passwort, eingibt.
  • In mindestens einer Ausführungsform authentifiziert ein Intranet-Server 916 einen Benutzer, wenn sich ein Benutzer für einen neuen Dienst anmelden oder einen bestehenden Dienst modifizieren möchte, und stellt einem Benutzer eine interaktive Bildschirmanzeige/ein Bedienfeld bereit, die bzw. das einem Benutzer den Zugriff auf Konfigurationsparameter für ein konkretes Anwendungsprogramm erlaubt. In mindestens einer Ausführungsform wird einem Benutzer eine Reihe von modifizierbaren Textfeldern präsentiert, die Aspekte einer Konfiguration einer Benutzerwebsite oder einer anderen Netzwerkressource beschreiben. Wenn ein Benutzer in mindestens einer Ausführungsform den auf einem Server für seine Website reservierten Speicherplatz vergrößern möchte, wird einem Benutzer ein Feld bereitgestellt, in dem ein Benutzer einen gewünschten Speicherplatz festlegt. In mindestens einer Ausführungsform aktualisiert ein Intranet-Server 916 als Reaktion auf den Empfang dieser Informationen eine Datenbank 920. In mindestens einer Ausführungsform leitet der Servermanager 918 diese Informationen an einen geeigneten Server weiter, und ein neuer Parameter wird während des Anwendungsprogrammbetriebs verwendet. In mindestens einer Ausführungsform ist ein Intranet-Server 916 konfiguriert, um Benutzern Zugriff auf Konfigurationsparameter von gehosteten Netzwerkressourcen (z. B. Webseiten, E-Mail, FTP-Sites, Mediensites usw.) bereitzustellen, für die ein Benutzer einen Vertrag mit einem Webhosting-Dienstanbieter abgeschlossen hat.
  • 10A veranschaulicht ein vernetztes Computersystem 1000A gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst das vernetzte Computersystem 1000A eine Vielzahl von Knoten oder Personalcomputern („PCs“) 1002, 1018, 1020. In mindestens einer Ausführungsform umfasst der Personalcomputer oder Knoten 1002 einen Prozessor 1014, einen Speicher 1016, eine Videokamera 1004, ein Mikrofon 1006, eine Maus 1008, Lautsprecher 1010 und einen Monitor 1012. In mindestens einer Ausführungsform können die PCs 1002, 1018, 1020 beispielsweise jeweils einen oder mehrere Desktop-Server eines internen Netzwerks innerhalb einer gegebenen Firma ausführen oder können Server eines allgemeinen Netzwerks sein, das nicht auf eine spezifische Umgebung beschränkt ist. In mindestens einer Ausführungsform gibt es einen Server pro PC-Knoten eines Netzwerks, sodass jeder PC-Knoten eines Netzwerks einen konkreten Netzwerkserver mit einer konkreten Netzwerk-URL-Adresse darstellt. In mindestens einer Ausführungsform verwendet jeder Server standardmäßig eine Standardwebseite für den Benutzer dieses Servers, die selbst eingebettete URLs enthalten kann, die auf weitere Unterseiten dieses Benutzers auf diesem Server oder auf andere Server oder Seiten auf anderen Servern in einem Netzwerk zeigen.
  • In mindestens einer Ausführungsform sind die Knoten 1002, 1018, 1020 und andere Knoten eines Netzes über ein Medium 1022 miteinander verbunden. In mindestens einer Ausführungsform kann das Medium 1022 ein Kommunikationskanal sein, wie etwa ein Integrated Services Digital Network („ISDN“). In mindestens einer Ausführungsform können verschiedene Knoten eines vernetzten Computersystems durch eine Vielfalt von Kommunikationsmedien verbunden sein, einschließlich lokaler Netzwerke („LAN“), analoger Telefonleitungen (plain-old telephone line - „POTS“), die manchmal als öffentliches Telefonnetzwerk („PSTN“) bezeichnet werden, und/oder Variationen davon. In mindestens einer Ausführungsform können verschiedene Knoten eines Netzwerks auch Computersystembenutzer darstellen, die über ein Netzwerk, wie etwa das Internet, miteinander verbunden sind. In mindestens einer Ausführungsform weist jeder Server in einem Netzwerk (der von einem konkreten Knoten eines Netzwerks in einer gegebenen Instanz ausgeführt wird) eine eindeutige Adresse oder Identifizierung innerhalb eines Netzwerks auf, die in Form einer URL spezifiziert werden kann.
  • In mindestens einer Ausführungsform kann daher eine Vielzahl von Mehrpunkt-Konferenzeinheiten (multi-point conferencing units - „MCUs“) verwendet werden, um Daten zu und von verschiedenen Knoten oder „Endpunkten“ eines Konferenzsystems zu übertragen. In mindestens einer Ausführungsform können Knoten und/oder MCUs zusätzlich zu verschiedenen anderen Kommunikationsmedien, wie etwa Knoten, die durch das Internet verbunden sind, über eine ISDN-Verbindung oder über ein lokales Netzwerk („LAN“) miteinander verbunden sein. In mindestens einer Ausführungsform können Knoten eines Konferenzsystems im Allgemeinen direkt mit einem Kommunikationsmedium, wie etwa einem LAN, oder durch eine MCU verbunden sein und dieses Konferenzsystem kann andere Knoten oder Elemente, wie etwa Router, Server und/oder Variationen davon, umfassen.
  • In mindestens einer Ausführungsform ist der Prozessor 1014 ein programmierbarer Allzweckprozessor. In mindestens einer Ausführungsform können Prozessoren der Knoten des vernetzten Computersystems 1000A auch Spezial-Videoprozessoren sein. In mindestens einer Ausführungsform können verschiedene Peripheriegeräte und Komponenten eines Knotens, wie etwa die des Knotens 1002, von denen anderer Knoten abweichen. In mindestens einer Ausführungsform können der Knoten 1018 und der Knoten 1020 identisch mit dem Knoten 1002 oder unterschiedlich konfiguriert sein. In mindestens einer Ausführungsform kann ein Knoten zusätzlich zu PC-Systemen auf jedem geeigneten Computersystem implementiert sein.
  • 10B veranschaulicht ein vernetztes Computersystem 1000B gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform veranschaulicht das System 1000B ein Netzwerk wie ein LAN 1024, das verwendet werden kann, um eine Vielfalt von Knoten zu verbinden, die miteinander kommunizieren kann. In mindestens einer Ausführungsform ist eine Vielzahl von Knoten an das LAN 1024 angeschlossen, wie etwa PC-Knoten 1026, 1028, 1030. In mindestens einer Ausführungsform kann ein Knoten auch über einen Netzwerkserver oder andere Mittel mit dem LAN verbunden sein. In mindestens einer Ausführungsform umfasst das System 1000B andere Arten von Knoten oder Elementen, wobei mindestens eine Ausführungsform Router, Server und Knoten beinhaltet.
  • 10C veranschaulicht ein vernetztes Computersystem 1000C gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform veranschaulicht das System 1000C ein WWW-System, das Kommunikationen über ein Backbone-Kommunikationsnetzwerk wie etwa das Internet 1032 aufweist, das verwendet werden kann, um eine Vielfalt von Knoten eines Netzes miteinander zu verbinden. In mindestens einer Ausführungsform ist das WWW ein Satz von Protokollen, der auf dem Internet arbeitet, und ermöglicht, dass ein grafisches Schnittstellensystem darauf arbeitet, um auf Informationen über das Internet zuzugreifen. In mindestens einer Ausführungsform ist eine Vielzahl von Knoten an das Internet 1032 im WWW angeschlossen, wie etwa PC-Knoten 1040, 1042, 1044. In mindestens einer Ausführungsform bildet ein Knoten über einen WWW-HTTP-Server, wie etwa die Server 1034, 1036, eine Schnittstelle mit anderen Knoten des WWW. In mindestens einer Ausführungsform kann der PC 1044 ein PC sein, der einen Knoten des Netzwerks 1032 bildet und selbst seinen Server 1036 betreibt, obwohl der PC 1044 und der Server 1036 in 10C zur Veranschaulichung getrennt zeigt sind.
  • In mindestens einer Ausführungsform ist WWW ein verteilter Anwendungstyp, gekennzeichnet durch WWW HTTP, das WWW-Protokoll, das auf dem Übertragungssteuerungsprotokoll/Internetprotokoll („TCP/IP“) des Internets läuft. In mindestens einer Ausführungsform kann das WWW somit durch einen Satz von Protokollen (d. h. HTTP) gekennzeichnet sein, die im Internet als sein „Backbone“ laufen.
  • In mindestens einer Ausführungsform ist ein Webbrowser eine Anwendung, die auf einem Knoten eines Netzwerks läuft und es in WWW-kompatiblen Netzwerksystemen den Benutzern eines bestimmten Servers oder Knotens ermöglicht, derartige Informationen zu betrachten und somit einem Benutzer die Suche nach grafischen und textbasierten Dateien zu ermöglichen, die über Hypertext-Verbindungen miteinander verknüpft sind, die in Dokumente oder Dateien eingebettet sind, die von Servern in einem Netzwerk verfügbar sind, die HTTP verstehen. In mindestens einer Ausführungsform kann ein abgerufenes Dokument verschiedene darin eingebettete Hypertext-Verbindungen und eine lokale Kopie einer Seite aufweisen, die lokal für einen abrufenden Benutzer erstellt wird, wenn eine gegebene Webseite eines ersten Servers, der einem ersten Knoten zugeordnet ist, durch einen Benutzer unter Verwendung eines anderen Servers in einem Netzwerk wie dem Internet abgerufen wird. Wenn ein Benutzer auf eine Hypertext-Verbindung klickt, reichen in mindestens einer Ausführungsform lokal gespeicherte Informationen in Bezug auf eine ausgewählten Hypertext-Verbindung typischerweise aus, um es der Maschine eines Benutzers zu ermöglichen, eine Verbindung über das Internet zu einem Server zu öffnen, der durch eine Hypertext-Verbindung angegeben wird.
  • In mindestens einer Ausführungsform kann mehr als ein Benutzer mit jedem HTTP-Server gekoppelt sein, und zwar über ein LAN wie etwa LAN 1038, wie in Bezug auf den WWW-HTTP-Server 1034 veranschaulicht. In mindestens einer Ausführungsform kann das System 1000C auch andere Arten von Knoten oder Elementen umfassen. In mindestens einer Ausführungsform ist ein WWW-HTTP-Server eine Anwendung, die auf einer Maschine, wie etwa einem PC, läuft. In mindestens einer Ausführungsform kann davon ausgegangen werden, dass jeder Benutzer einen eindeutigen „Server“ aufweist, wie in Bezug auf den PC 1044 veranschaulicht. In mindestens einer Ausführungsform kann ein Server als ein Server betrachtet werden, wie etwa der WWW-HTTP-Server 1034, der Zugriff auf ein Netzwerk für ein LAN oder eine Vielfalt von Knoten oder eine Vielzahl von LAN bereitstellt. In mindestens einer Ausführungsform gibt es eine Vielzahl von Benutzern, von der jeder einen Desktop-PC oder Knoten eines Netzwerks aufweist, wobei jeder Desktop-PC potentiell einen Server für einen Benutzer davon herstellt. In mindestens einer Ausführungsform ist jeder Server einer konkreten Netzwerkadresse oder URL zugeordnet, die, wenn darauf zugegriffen wird, eine Standardwebseite für diesen Benutzer bereitstellt. In mindestens einer Ausführungsform kann eine Webseite weitere Verbindungen (eingebettete URL) enthalten, die auf weitere Unterseiten dieses Benutzers auf diesem Server oder auf andere Server in einem Netzwerk oder Seiten auf anderen Servern in einem Netzwerk zeigen.
  • CLOUD-COMPUTING UND -DIENSTE
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte cloudbasierte Systeme dar, die verwendet werden können, um mindestens eine Ausführungsform zu implementieren.
  • In mindestens einer Ausführungsform ist Cloud-Computing eine Art der Berechnung, bei der dynamisch skalierbare und oft virtualisierte Ressourcen als Dienst über das Internet bereitgestellt werden. In mindestens einer Ausführungsform müssen die Benutzer keine Kenntnisse, kein Fachwissen oder keine Steuerung über die Technologieinfrastruktur aufweisen, die als „in der Cloud“ bezeichnet werden kann, die sie unterstützt. In mindestens einer Ausführungsform umfasst Cloud-Computing Infrastruktur-als-Dienst, Plattform-als-Dienst, Software-als-Dienst und andere Variationen, die ein gemeinsames Leitmotiv der Abhängigkeit vom Internet zum Erfüllen von Rechenbedürfnissen von Benutzern aufweisen. In mindestens einer Ausführungsform kann ein typischer Cloud-Einsatz, wie etwa in einer privaten Cloud (z. B. Unternehmensnetzwerk) oder einem Rechenzentrum (data center - DC) in einer öffentlichen Cloud (z. B. Internet) aus Tausenden von Servern (oder alternativ VM), Hunderten von Ethernet-, Fibre-Channel- oder Fibre-Channel-over-Ethernet(FCoE)-Ports, Switching- und Speicherinfrastruktur usw. bestehen. In mindestens einer Ausführungsform kann die Cloud auch aus einer Netzwerkdienstinfrastruktur wie IPsec-VPN-Hubs, Firewalls, Lastausgleichern, Weitverkehrsnetz(WAN)-Optimierern usw. bestehen. In mindestens einer Ausführungsform können entfernte Teilnehmer sicher auf Cloud-Anwendungen und -Dienste zugreifen, indem sie sich über einen VPN-Tunnel, wie etwa einen IPsec-VPN-Tunnel, verbinden.
  • In mindestens einer Ausführungsform ist Cloud-Computing ein Modell zum Ermöglichen eines bequemen On-Demand-Netzwerkzugriffs auf einen gemeinsam genutzten Pool konfigurierbarer Rechenressourcen (z. B. Netzwerke, Server, Speicher, Anwendungen und Dienste), die schnell mit minimalem Verwaltungsaufwand oder Dienstanbieterinteraktion bereitgestellt und freigegeben werden können.
  • In mindestens einer Ausführungsform ist das Cloud-Computing durch einen On-Demand-Self-Service gekennzeichnet, bei dem ein Verbraucher Rechenkapazitäten wie etwa Serverzeit und Netzwerkspeicher einseitig und automatisch nach Bedarf bereitstellen kann, ohne dass ein menschliches Eingreifen beim jeweiligen Dienstanbieter erforderlich ist. In mindestens einer Ausführungsform ist Cloud-Computing durch einen breiten Netzwerkzugriff gekennzeichnet, bei dem Fähigkeiten über ein Netzwerk verfügbar sind und auf die über Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z. B. Mobiltelefone, Laptops und PDA) fördern. In mindestens einer Ausführungsform ist Cloud-Computing gekennzeichnet durch Ressourcen-Pooling, bei dem die Rechenressourcen eines Anbieters gepoolt werden, um mehrere Verbraucher unter Verwendung eines mehrmandantenfähigen Modells zu bedienen, wobei verschiedene physische und virtuelle Ressourcen gemäß Verbrauchernachfrage dynamisch zugewiesen und neu zugewiesen werden. In mindestens einer Ausführungsform besteht ein Gefühl der Standortunabhängigkeit darin, dass ein Kunde im Allgemeinen keine Steuerung oder Kenntnis über einen genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, den Standort auf einer höheren Abstraktionsebene (z. B. Land, Staat oder Rechenzentrum) festzulegen.
  • In mindestens einer Ausführungsform beinhalten die Ressourcen Speicher, Verarbeitung, Arbeitsspeicher, Netzwerkbandbreite und virtuelle Maschinen. In mindestens einer Ausführungsform ist Cloud-Computing durch eine schnelle Elastizität gekennzeichnet, bei der Fähigkeiten schnell und elastisch, in einigen Fällen automatisch, für ein schnelles Scale-Out bereitgestellt werden können und für ein schnelles Scale-In schnell freigegeben werden. In mindestens einer Ausführungsform erscheinen einem Verbraucher die zur Bereitstellung verfügbaren Fähigkeiten oft als unbegrenzt und können jederzeit in beliebiger Menge erworben werden. In mindestens einer Ausführungsform ist Cloud-Computing durch einen gemessenen Dienst gekennzeichnet, bei dem Cloud-Systeme die Ressourcennutzung automatisch steuern und optimieren, indem sie eine Messfähigkeit auf einer bestimmten Abstraktionsebene nutzen, die für eine Art von Dienst (z. B. Speicherung, Verarbeitung, Bandbreite und aktive Benutzerkonten) geeignet ist. In mindestens einer Ausführungsform kann die Ressourcennutzung überwacht, gesteuert und gemeldet werden, um Transparenz sowohl für einen Anbieter als auch für einen Verbraucher eines genutzten Dienstes bereitzustellen.
  • In mindestens einer Ausführungsform kann Cloud-Computing verschiedenen Diensten zugeordnet sein. In mindestens einer Ausführungsform kann sich Cloud-Software-als-Dienst (SaaS) auf einen Dienst beziehen, bei dem eine einem Verbraucher bereitgestellte Fähigkeit darin besteht, die Anwendungen eines Anbieters zu verwenden, die auf einer Cloud-Infrastruktur laufen. In mindestens einer Ausführungsform sind Anwendungen von verschiedenen Client-Vorrichtungen über eine Thin-Client-Schnittstelle wie etwa einen Webbrowser (z. B. webbasierte E-Mail) zugänglich. In mindestens einer Ausführungsform verwaltet oder steuert der Verbraucher nicht die zugrunde liegende Cloud-Infrastruktur, einschließlich des Netzwerks, der Server, der Betriebssysteme, des Speichers oder sogar einzelner Anwendungsfunktionen, mit einer möglichen Ausnahme von begrenzten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • In mindestens einer Ausführungsform kann sich Cloud-Platform-as-a-Service (PaaS) auf einen Dienst beziehen, bei dem eine einem Verbraucher bereitgestellte Fähigkeit darin besteht, von Verbrauchern erstellte oder erfasste Anwendungen, die mit von einem Anbieter unterstützten Programmiersprachen und -tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. In mindestens einer Ausführungsform verwaltet oder steuert der Verbraucher nicht die zugrunde liegende Cloud-Infrastruktur, einschließlich der Netzwerke, Server, Betriebssysteme oder des Speichers, sondern weist die Steuerung über die eingesetzten Anwendungen und möglicherweise die Konfigurationen der Anwendungs-Hosting-Umgebung auf.
  • In mindestens einer Ausführungsform kann sich Cloud-Infrastructure-as-a-Service (laaS) auf einen Dienst beziehen, bei dem eine Fähigkeit, die einem Verbraucher bereitgestellt wird, in der Bereitstellung von Verarbeitungs-, Speicher-, Netzwerk- und anderen grundlegenden Rechenressourcen besteht, bei denen ein Verbraucher in der Lage ist, beliebige Software einzusetzen und auszuführen, die Betriebssysteme und Anwendungen beinhalten kann. In mindestens einer Ausführungsform verwaltet oder steuert der Verbraucher die zugrunde liegende Cloud-Infrastruktur nicht, weist aber die Steuerung über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise begrenzte Steuerung über ausgewählte Netzwerkkomponenten (z. B. Host-Firewalls) auf.
  • In mindestens einer Ausführungsform kann Cloud-Computing auf verschiedene Art und Weise eingesetzt werden. In mindestens einer Ausführungsform kann sich eine nicht öffentliche Cloud auf eine Cloud-Infrastruktur beziehen, die ausschließlich für eine Organisation betrieben wird. In mindestens einer Ausführungsform kann eine nicht öffentliche Cloud durch eine Organisation oder einen Drittanbieter verwaltet werden und kann innerhalb oder außerhalb des Betriebsgeländes existieren. In mindestens einer Ausführungsform kann sich eine gemeinschaftliche Cloud auf eine Cloud-Infrastruktur beziehen, die von mehreren Organisationen gemeinsam genutzt wird und eine bestimmte Gemeinschaft unterstützt, die gemeinsame Anliegen hat (z. B. Zielsetzung, Sicherheitsanforderungen, Richtlinien und Compliance-Überlegungen). In mindestens einer Ausführungsform kann eine gemeinschaftliche Cloud durch eine Organisation oder einen Drittanbieter verwaltet werden und kann innerhalb oder außerhalb des Betriebsgeländes existieren. In mindestens einer Ausführungsform kann sich eine öffentliche Cloud auf eine Cloud-Infrastruktur beziehen, die einer breiten Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt wird und sich im Besitz einer Organisation befindet, die Cloud-Dienste bereitstellt. In mindestens einer Ausführungsform kann sich eine Hybrid-Cloud auf eine Cloud-Infrastruktur beziehen, die eine Zusammensetzung aus zwei oder mehr Clouds (nicht öffentlich, gemeinschaftlich oder öffentlich) ist, die eigenständige Einheiten bleiben, aber durch standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportabilität ermöglicht (z. B. Cloud Bursting für den Lastausgleich zwischen Clouds). In mindestens einer Ausführungsform ist eine Cloud-Computing-Umgebung dienstorientiert mit einem Fokus auf Staatenlosigkeit, geringe Kopplung, Modularität und semantische Interoperabilität.
  • 11 veranschaulicht eine oder mehrere Komponenten einer Systemumgebung 1100, in der Dienste als Drittanbieter-Netzwerkdienste angeboten werden können, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann ein Drittanbieter-Netzwerk als Cloud, Cloud-Netzwerk, Cloud-Computing-Netzwerk und/oder Variationen davon bezeichnet werden. In mindestens einer Ausführungsform beinhaltet die Systemumgebung 1100 eine oder mehrere Client-Rechenvorrichtungen 1104, 1106 und 1108, die durch Benutzer verwendet werden können, um mit einem Drittanbieter-Netzwerkinfrastruktursystem 1102 zu interagieren, das Drittanbieter-Netzwerkdienste bereitstellt, die als Cloud-Computing-Dienste bezeichnet werden können. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1102 einen oder mehrere Computer und/oder Server umfassen.
  • Es versteht sich, dass das in 11 dargestellte Drittanbieter-Netzwerkinfrastruktursystem 1102 andere als die dargestellten Komponenten aufweisen kann. Ferner zeigt 11 eine Ausführungsform eines Drittanbieter-Netzwerkinfrastruktursystems. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1102 mehr oder weniger Komponenten aufweisen als in 11 dargestellt, kann zwei oder mehr Komponenten kombinieren oder kann eine andere Konfiguration oder Anordnung von Komponenten aufweisen.
  • In mindestens einer Ausführungsform können die Client-Rechenvorrichtungen 1104, 1106 und 1108 konfiguriert sein, um eine Client-Anwendung, wie etwa einen Webbrowser, eine proprietäre Client-Anwendung oder eine andere Anwendung, zu betreiben, die durch einen Benutzer einer Client-Rechenvorrichtung verwendet werden kann, um mit dem Drittanbieter-Netzwerkinfrastruktursystem 1102 zu interagieren, um Dienste zu nutzen, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellt werden. Auch wenn die beispielhafte Systemumgebung 1100 mit drei Client-Rechenvorrichtungen gezeigt ist, kann eine beliebige Anzahl von Client-Rechenvorrichtungen unterstützt werden. In mindestens einer Ausführungsform können andere Vorrichtungen, wie etwa Vorrichtungen mit Sensoren usw., mit dem Drittanbieter-Netzwerkinfrastruktursystem 1102 interagieren. In mindestens einer Ausführungsform können das/die Netzwerk(e) 1110 die Kommunikation und den Austausch von Daten zwischen den Client-Rechenvorrichtungen 1104, 1106 und 1108 und dem Drittanbieter-Netzwerkinfrastruktursystem 1102 ermöglichen.
  • In mindestens einer Ausführungsform können die vom Drittanbieter-Netzinfrastruktursystem 1102 bereitgestellten Dienste eine Vielzahl von Diensten beinhalten, die den Benutzern eines Drittanbieter-Netzinfrastruktursystems auf Anfrage zur Verfügung gestellt werden. In mindestens einer Ausführungsform können auch verschiedene Dienste angeboten werden, einschließlich ohne Einschränkung Online-Datenspeicher- und Sicherungslösungen, webbasierte E-Mail-Dienste, gehostete Office-Suiten und Dienste für die Zusammenarbeit von Dokumenten, Datenbankverwaltung und -verarbeitung, verwaltete technische Supportdienste und/oder Variationen davon. In mindestens einer Ausführungsform können Dienste, die durch ein Drittanbieter-Netzwerkinfrastruktursystem bereitgestellt werden, dynamisch skalieren, um die Bedürfnisse ihrer Benutzer zu erfüllen.
  • In mindestens einer Ausführungsform kann eine spezifische Instanziierung eines Dienstes, der vom Drittanbieter-Netzinfrastruktursystem 1102 bereitgestellt wird, als eine „Dienstinstanz“ bezeichnet werden. In mindestens einer Ausführungsform wird im Allgemeinen jeder Dienst, der einem Nutzer über ein Kommunikationsnetzwerk, wie etwa das Internet, von einem Drittanbieter-Netzwerkdienstsystem zur Verfügung gestellt wird, als „Drittanbieter-Netzwerkdienst“ bezeichnet. In mindestens einer Ausführungsform unterscheiden sich in einer öffentlichen Drittanbieter-Netzwerkumgebung die Server und Systeme, die das System eines Drittanbieter-Netzwerkdienstleisters bilden, von den eigenen Servern und Systemen des Kunden vor Ort. In mindestens einer Ausführungsform kann das System eines Drittanbieter-Netzwerkdienstanbieters eine Anwendung hosten, und ein Benutzer kann über ein Kommunikationsnetzwerk wie das Internet auf Anfrage eine Anwendung bestellen und verwenden.
  • In mindestens einer Ausführungsform kann ein Dienst in einer Drittanbieter-Computernetzwerk-Infrastruktur einen geschützten Computernetzwerk-Zugang zu einem Speicher, einer gehosteten Datenbank, einem gehosteten Webserver, einer Softwareanwendung oder einem anderen Dienst beinhalten, der von einem Drittanbieter-Netzwerk für einen Benutzer bereitgestellt wird. In mindestens einer Ausführungsform kann ein Dienst einen passwortgeschützten Zugriff auf einen entfernten Speicher in einem Drittanbieter-Netzwerk über das Internet beinhalten. In mindestens einer Ausführungsform kann ein Dienst eine auf einem Webdienst basierende gehostete relationale Datenbank und eine Middleware-Engine in Skriptsprache zur privaten Verwendung durch einen vernetzten Entwickler beinhalten. In mindestens einer Ausführungsform kann ein Dienst Zugriff auf eine E-Mail-Softwareanwendung beinhalten, die auf der Website eines Drittanbieter-Netzwerkherstellers gehostet wird.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1102 eine Reihe von Anwendungen, Middleware und Datenbankdienstangeboten beinhalten, die einem Kunden in einer abonnementbasierten, elastisch skalierbaren, zuverlässigen, hochverfügbaren und sicheren Weise zur Selbstbedienung bereitgestellt werden. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1102 auch „Big Data“-bezogene Berechnungs- und Analysedienste bereitstellen. In mindestens einer Ausführungsform wird der Begriff „Big Data“ allgemein verwendet, um sich auf extrem große Datensätze zu beziehen, die von Analysten und Forschern gespeichert und manipuliert werden können, um große Datenmengen zu visualisieren, Trends zu erkennen und/oder anderweitig mit Daten zu interagieren. In mindestens einer Ausführungsform können Big Data und zugehörige Anwendungen durch ein Infrastruktursystem auf vielen Ebenen und in unterschiedlichen Maßstäben gehostet und/oder manipuliert werden. In mindestens einer Ausführungsform können Dutzende, Hunderte oder Tausende parallel verbundener Prozessoren auf solche Daten einwirken, um sie darzustellen oder externe Kräfte auf Daten oder das, was sie darstellen, zu simulieren. In mindestens einer Ausführungsform können diese Datensätze strukturierte Daten, die etwa in einer Datenbank oder anderweitig gemäß einem strukturierten Modell organisiert sind, und/oder unstrukturierte Daten (z. B. EMails, Bilder, Daten-Blobs (binäre große Objekte), Web-Seiten, komplexe Ereignisverarbeitung) involvieren. In mindestens einer Ausführungsform kann durch Nutzung der Fähigkeit einer Ausführungsform, relativ schnell mehr (oder weniger) Rechenressourcen auf ein Ziel zu konzentrieren, ein Drittanbieter-Netzwerkinfrastruktursystem besser verfügbar sein, um Tasks an großen Datensätzen auf Grundlage von der Nachfrage von einem Unternehmen, einer Regierungsbehörde, einer Forschungseinrichtung, einer Privatperson, einer Gruppe gleichgesinnter Personen oder Organisationen oder einer anderen Einheit auszuführen.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzinfrastruktursystem 1102 so angepasst werden, dass es das Abonnement eines Kunden für die vom Drittanbieter-Netzinfrastruktursystem 1102 angebotenen Dienste automatisch bereitstellt, verwaltet und verfolgt. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1102 über verschiedene Einsatzmodelle Drittanbieter-Netzwerkdienste bereitstellen. In mindestens einer Ausführungsform können Dienste im Rahmen eines öffentlichen Drittanbieter-Netzwerkmodells bereitgestellt werden, bei dem das Drittanbieter-Netzwerkinfrastruktursystem 1102 im Besitz einer Organisation ist, die Drittanbieter-Netzwerkdienste verkauft und Dienste einer breiten Öffentlichkeit oder unterschiedlichen Industrieunternehmen zur Verfügung stellt. In mindestens einer Ausführungsform können Dienste im Rahmen eines nicht öffentlichen Drittanbieter-Netzwerkmodells bereitgestellt werden, bei dem das Drittanbieter-Netzwerkinfrastruktursystem 1102 ausschließlich für eine einzelne Organisation betrieben wird und Dienste für eine oder mehrere Einheiten innerhalb einer Organisation bereitstellen kann. In mindestens einer Ausführungsform können Drittanbieter-Netzwerkdienste auch im Rahmen eines gemeinschaftlichen Drittanbieter-Netzwerkmodells bereitgestellt werden, bei dem das Drittanbieter-Netzwerkinfrastruktursystem 1102 und Dienste, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellt werden, von mehreren Organisationen in einer zusammenhängenden Gemeinschaft gemeinsam genutzt werden. In mindestens einer Ausführungsform können Drittanbieter-Netzwerkdienste auch im Rahmen eines hybriden Drittanbieter-Netzwerkmodells bereitgestellt werden, das eine Kombination von zwei oder mehr unterschiedlichen Modellen ist.
  • In mindestens einer Ausführungsform können die vom Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellten Dienste einen oder mehrere Dienste beinhalten, die unter der Kategorie „Software-as-a-Service“ (SaaS), „Platformas-a-Service“ (PaaS), „Infrastructure-as-a-Service“ (laaS) oder anderen Kategorien von Diensten, einschließlich hybrider Dienste, bereitgestellt werden. In mindestens einer Ausführungsform kann ein Kunde über einen Abonnementauftrag einen oder mehrere Dienste bestellen, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellt werden. In mindestens einer Ausführungsform führt das Drittanbieter-Netzwerkinfrastruktursystem 1102 dann die Verarbeitung durch, um Dienste in einem Abonnementauftrag des Kunden bereitzustellen.
  • In mindestens einer Ausführungsform können die vom Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellten Dienste ohne Einschränkung Anwendungsdienste, Plattformdienste und Infrastrukturdienste beinhalten. In mindestens einer Ausführungsform können Anwendungsdienste durch ein Drittanbieter-Netzwerkinfrastruktursystem über eine SaaS-Plattform bereitgestellt werden. In mindestens einer Ausführungsform kann die SaaS-Plattform konfiguriert sein, um Drittanbieter-Netzwerkdienste bereitzustellen, die in eine SaaS-Kategorie fallen. In mindestens einer Ausführungsform kann die SaaS-Plattform Fähigkeiten zum Erstellen und Bereitstellen einer Suite von On-Demand-Anwendungen auf einer integrierten Entwicklungs- und Einsatzplattform bereitstellen. In mindestens einer Ausführungsform kann die SaaS-Plattform die zugrundeliegende Software und Infrastruktur zum Bereitstellen von SaaS-Diensten verwalten und steuern. In mindestens einer Ausführungsform können Kunden durch Nutzung von durch eine SaaS-Plattform bereitgestellten Diensten Anwendungen nutzen, die in einem Drittanbieter-Netzwerkinfrastruktursystem ausgeführt werden. In mindestens einer Ausführungsform können Kunden Anwendungsdienste erwerben, ohne dass Kunden separate Lizenzen und Support erwerben müssen. In mindestens einer Ausführungsform können verschiedene unterschiedliche SaaS-Dienste bereitgestellt werden. In mindestens einer Ausführungsform kann dies ohne Einschränkung Dienste beinhalten, die Lösungen für das Vertriebsleistungsmanagement, die Unternehmensintegration und die Geschäftsflexibilität für große Organisationen bereitstellen.
  • In mindestens einer Ausführungsform können die Plattformdienste von einem Drittanbieter-Netzwerkinfrastruktursystem 1102 über eine PaaS-Plattform bereitgestellt werden. In mindestens einer Ausführungsform kann die PaaS-Plattform konfiguriert sein, um Drittanbieter-Netzwerkdienste bereitzustellen, die in eine PaaS-Kategorie fallen. In mindestens einer Ausführungsform können Plattformdienste ohne Einschränkung Dienste beinhalten, die es Organisationen ermöglichen, vorhandene Anwendungen auf einer geteilten, gemeinsamen Architektur zu konsolidieren, sowie die Fähigkeit, neue Anwendungen zu erstellen, die durch eine Plattform bereitgestellte geteilte Dienste einsetzen. In mindestens einer Ausführungsform kann die PaaS-Plattform die zugrundeliegende Software und Infrastruktur zum Bereitstellen von PaaS-Diensten verwalten und steuern. In mindestens einer Ausführungsform können Kunden PaaS-Dienste, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellt werden, erwerben, ohne dass Kunden separate Lizenzen und Support erwerben müssen.
  • In mindestens einer Ausführungsform können Kunden durch die Nutzung von Diensten, die von einer PaaS-Plattform bereitgestellt werden, Programmiersprachen und Tools verwenden, die von einem Drittanbieter-Netzwerkinfrastruktursystem unterstützt werden, und auch die bereitgestellten Dienste steuern. In mindestens einer Ausführungsform können Plattformdienste, die durch ein Drittanbieter-Netzwerkinfrastruktursystem bereitgestellt werden, Datenbank-Drittanbieter-Netzwerkdienste, Middleware-Drittanbieter-Netzwerkdienste und Drittanbieter-Netzwerkdienste beinhalten. In mindestens einer Ausführungsform können Datenbank-Drittanbieter-Netzwerkdienste gemeinsame Diensteinsatzmodelle unterstützen, die es Organisationen ermöglichen, Datenbankressourcen zu poolen und Kunden einen Datenbank-als-Dienst in Form eines Datenbank-Drittanbieter-Netzwerks anzubieten. In mindestens einer Ausführungsform können Middleware-Drittanbieter-Netzwerkdienste eine Plattform für Kunden bereitstellen, um verschiedene Geschäftsanwendungen zu entwickeln und bereitzustellen, und die Drittanbieter-Netzwerkdienste können eine Plattform für Kunden bereitstellen, um Anwendungen in einem Drittanbieter-Netzwerkinfrastruktursystem einzusetzen.
  • In mindestens einer Ausführungsform können verschiedene Infrastrukturdienste von einer laaS-Plattform in einem Drittanbieter-Netzinfrastruktursystem bereitgestellt werden. In mindestens einer Ausführungsform ermöglichen Infrastrukturdienste die Verwaltung und Steuerung von zugrunde liegenden Rechenressourcen, wie etwa Speicher, Netzwerke und andere grundlegende Rechenressourcen, für Kunden, die Dienste nutzen, die durch eine SaaS-Plattform und eine PaaS-Plattform bereitgestellt werden.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzinfrastruktursystem 1102 auch Infrastrukturressourcen 1130 zur Bereitstellung von Ressourcen beinhalten, die zur Erbringung verschiedener Dienste für Kunden eines Drittanbieter-Netzinfrastruktursystems verwendet werden. In mindestens einer Ausführungsform können die Infrastrukturressourcen 1130 vorintegrierte und optimierte Kombinationen von Hardware, wie etwa Server, Speicher und Netzwerkressourcen, um Dienste auszuführen, die durch eine Paas-Plattform und eine Saas-Plattform bereitgestellt werden, und anderen Ressourcen beinhalten.
  • In mindestens einer Ausführungsform können die Ressourcen im Drittanbieter-Netzinfrastruktursystem 1102 von mehreren Benutzern gemeinsam genutzt und je nach Bedarf dynamisch neu zugewiesen werden. In mindestens einer Ausführungsform können Benutzern in unterschiedlichen Zeitzonen Ressourcen zugewiesen werden. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1102 einer ersten Gruppe von Benutzern in einer ersten Zeitzone ermöglichen, Ressourcen eines Drittanbieter-Netzwerkinfrastruktursystems für eine festgelegte Anzahl von Stunden zu nutzen, und dann eine Neuzuweisung derselben Ressourcen für eine andere Gruppe von Benutzern, die sich in einer anderen Zeitzone befinden, ermöglichen, wodurch die Nutzung der Ressourcen maximiert wird.
  • In mindestens einer Ausführungsform kann eine Reihe interner gemeinsam genutzter Dienste 1132 bereitgestellt werden, die von verschiedenen Komponenten oder Modulen des Drittanbieter-Netzinfrastruktursystems 1102 gemeinsam genutzt werden, um die Bereitstellung von Diensten durch das Drittanbieter-Netzinfrastruktursystem 1102 zu ermöglichen. In mindestens einer Ausführungsform können diese internen gemeinsam genutzten Dienste ohne Einschränkung einen Sicherheits- und Identitätsdienst, einen Integrationsdienst, einen Unternehmens-Repository-Dienst, einen Unternehmensmanagerdienst, einen Virenscan- und Whitelist-Dienst, einen Hochverfügbarkeits-, Sicherungs- und Wiederherstellungsdienst, Dienst zum Ermöglichen von Drittanbieter-Netzwerkunterstützung, einen E-Mail-Dienst, einen Benachrichtigungsdienst, einen Dateiübertragungsdienst und/oder Variationen davon beinhalten.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1102 eine umfangreiche Verwaltung von Drittanbieter-Netzwerkdiensten (z. B. SaaS-, PaaS- und laaS-Dienste) in einem Drittanbieter-Netzwerkinfrastruktursystem bereitstellen. In mindestens einer Ausführungsform kann die Drittanbieter-Netzwerkverwaltungsfunktionalität Fähigkeiten zum Bereitstellen, Verwalten und Verfolgen eines durch das Drittanbieter-Netzwerkinfrastruktursystem 1102 empfangenen Abonnements eines Kunden und/oder Variationen davon beinhalten.
  • In mindestens einer Ausführungsform kann die Drittanbieter-Netzwerkverwaltungsfunktionalität wie in 11 dargestellt durch ein oder mehrere Module bereitgestellt werden, wie etwa ein Auftragsverwaltungsmodul 1120, ein Auftragsorchestrierungsmodul 1122, ein Auftragsbereitstellungsmodul 1124, ein Auftragsverwaltungs- und -überwachungsmodul 1126 und ein Identitätsverwaltungsmodul 1128. In mindestens einer Ausführungsform können diese Module einen oder mehrere Computer und/oder Server beinhalten oder unter Verwendung derselben bereitgestellt werden, die Allzweckcomputer, spezialisierte Server-Computer, Serverfarmen, Servercluster oder eine beliebige andere geeignete Anordnung und/oder Kombination sein können.
  • In mindestens einer Ausführungsform kann ein Kunde, der eine Client-Vorrichtung wie etwa die Client-Rechenvorrichtungen 1104, 1106 oder 1108 verwendet, in Schritt 1134 mit dem Drittanbieter-Netzwerkinfrastruktursystem 1102 interagieren, indem er einen oder mehrere von dem Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellte Dienste anfordert und eine Bestellung für ein Abonnement für einen oder mehrere von dem Drittanbieter-Netzwerkinfrastruktursystem 1102 angebotene Dienste aufgibt. In mindestens einer Ausführungsform kann ein Kunde auf eine Benutzerschnittstelle (user interface - UI) eines Drittanbieter-Netzwerks zugreifen, wie etwa eine Drittanbieter-Netzwerk-Ul 1112, eine Drittanbieter-Netzwerk-Ul 1114 und/oder eine Drittanbieter-Netzwerk-Ul 1116, und einen Abonnementauftrag über diese Ul erteilen. In mindestens einer Ausführungsform können Auftragsinformationen, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1102 als Reaktion darauf, dass ein Kunde einen Auftrag erteilt, empfangen werden, Informationen beinhalten, die einen Kunden und einen oder mehrere Dienste identifizieren, die durch ein Drittanbieter-Netzwerkinfrastruktursystem 1102 angeboten werden, die ein Kunde abonnieren möchte.
  • In mindestens einer Ausführungsform können bei Schritt 1136 von einem Kunden empfangene Auftragsinformationen in einer Auftragsdatenbank 1118 gespeichert werden. In mindestens einer Ausführungsform kann, wenn es sich um einen neuen Auftrag handelt, ein neuer Datensatz für einen Auftrag erstellt werden. In mindestens einer Ausführungsform kann die Auftragsdatenbank 1118 eine von mehreren Datenbanken sein, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1118 betrieben und in Verbindung mit anderen Systemelementen betrieben werden.
  • In mindestens einer Ausführungsform kann in Schritt 1138 eine Auftragsinformation an ein Auftragsverwaltungsmodul 1120 weitergeleitet werden, das dazu konfiguriert sein kann, Abrechnungs- und Buchhaltungsfunktionen im Zusammenhang mit einem Auftrag durchzuführen, wie etwa die Überprüfung eines Auftrags und nach Überprüfung die Buchung eines Auftrags.
  • In mindestens einer Ausführungsform können bei Schritt 1140 Informationen bezüglich eines Auftrags an ein Auftragsorchestrierungsmodul 1122 übermittelt werden, das konfiguriert ist, um die Bereitstellung von Diensten und Ressourcen für einen durch einen Kunden erteilten Auftrag zu koordinieren. In mindestens einer Ausführungsform kann das Auftragsorchestrierungsmodul 1122 Dienste des Auftragsbereitstellungsmoduls 1124 für die Bereitstellung verwenden. In mindestens einer Ausführungsform ermöglicht das Auftragsorchestrierungsmodul 1122 die Verwaltung von Geschäftsprozessen, die mit jedem Auftrag verbunden sind, und wendet Geschäftslogik an, um zu bestimmen, ob ein Auftrag zur Bereitstellung fortfahren sollte.
  • In mindestens einer Ausführungsform sendet das Auftragsorchestrierungsmodul 1122 bei Schritt 1142 nach Empfang eines Auftrags für ein neues Abonnement eine Anforderung an das Auftragsbereitstellungsmodul 1124, Ressourcen zuzuweisen und Ressourcen zu konfigurieren, die zum Erfüllen eines Abonnementauftrags benötigt werden. In mindestens einer Ausführungsform ermöglicht das Auftragsbereitstellungsmodul 1124 eine Zuweisung von Ressourcen für durch einen Kunden beauftragte Dienste. In mindestens einer Ausführungsform stellt das Auftragsbereitstellungsmodul 1124 eine Abstraktionsebene zwischen Drittanbieter-Netzwerkdiensten, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1100 bereitgestellt werden, und einer physischen Implementierungsschicht bereit, die verwendet wird, um Ressourcen zum Bereitstellen angeforderter Dienste bereitzustellen. In mindestens einer Ausführungsform ermöglicht dies, das Auftragsorchestrierungsmodul 1122 von Implementierungsdetails zu isolieren, beispielsweise ob Dienste und Ressourcen tatsächlich in Echtzeit bereitgestellt oder vorab bereitgestellt und nur auf Anfrage zugewiesen/zugeordnet werden.
  • In mindestens einer Ausführungsform kann in Schritt 1144 nach der Bereitstellung von Diensten und Ressourcen eine Benachrichtigung an abonnierende Kunden gesendet werden, die anzeigt, dass ein angeforderter Dienst nun zur Nutzung bereit ist. In mindestens einer Ausführungsform können Informationen (z. B. eine Verbindung) an einen Kunden gesendet werden, die es einem Kunden ermöglichen, mit der Verwendung der angeforderten Dienste zu beginnen.
  • In mindestens einer Ausführungsform kann bei Schritt 1146 ein Abonnementauftrag eines Kunden durch ein Auftragsverwaltungs- und - überwachungsmodul 1126 verwaltet und verfolgt werden. In mindestens einer Ausführungsform kann das Auftragsverwaltungs- und -überwachungsmodul 1126 konfiguriert sein, um Nutzungsstatistiken bezüglich einer Kundennutzung von abonnierten Diensten zu sammeln. In mindestens einer Ausführungsform können Statistiken für eine verwendete Speichermenge, eine Menge an übertragenen Daten, eine Anzahl von Benutzern und eine Menge an Systembetriebszeit und Systemausfallzeit und/oder Variationen davon gesammelt werden.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1100 ein Identitätsmanagementmodul 1128 beinhalten, das so konfiguriert ist, dass es Identitätsdienste, wie etwa Zugriffsmanagement- und Autorisierungsdienste im Drittanbieter-Netzwerkinfrastruktursystem 1100 bereitstellt. In mindestens einer Ausführungsform kann das Identitätsverwaltungsmodul 1128 Informationen über Kunden steuern, die Dienste nutzen möchten, die durch das Drittanbieter-Netzwerkinfrastruktursystem 1102 bereitgestellt werden. In mindestens einer Ausführungsform können solche Informationen Informationen beinhalten, die Identitäten solcher Kunden authentifizieren, und Informationen beinhalten, die beschreiben, zu welchen Handlungen diese Kunden in Bezug auf verschiedene Systemressourcen (z. B. Dateien, Verzeichnisse, Anwendungen, Kommunikationsports, Speichersegmente usw.) autorisiert sind. In mindestens einer Ausführungsform kann das Identitätsverwaltungsmodul 1128 auch die Verwaltung von beschreibenden Informationen über jeden Kunden und darüber, wie und von wem auf diese beschreibenden Informationen zugegriffen und diese modifiziert werden können, beinhalten.
  • 12 veranschaulicht eine Cloud-Computing-Umgebung 1202 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst die Cloud-Computing-Umgebung 1202 ein oder mehrere Computersysteme/Server 1204, mit denen Rechenvorrichtungen wie ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 1206A, ein Desktop-Computer 1206B, ein Laptop-Computer 1206C und/oder ein Autocomputersystem 1206N kommunizieren. In mindestens einer Ausführungsform ermöglicht dies, dass Infrastruktur, Plattformen und/oder Software als Dienste von der Cloud-Computing-Umgebung 1202 angeboten werden, sodass nicht jeder Client diese Ressourcen separat pflegen muss. Es versteht sich, dass die in 12 gezeigten Arten von Rechenvorrichtungen 1206A-N nur veranschaulichend sein sollen und dass die Cloud-Computing-Umgebung 1202 mit jeder Art von computergestützter Vorrichtung über jede Art von Netzwerk und/oder Netzwerk/adressierbare Verbindung (z. B. über einen Webbrowser) kommunizieren kann.
  • In mindestens einer Ausführungsform ist ein Computersystem/Server 1204, das bzw. der als ein Cloud-Computing-Knoten bezeichnet werden kann, mit zahlreichen anderen Allzweck- oder Spezialzweck-Rechensystemumgebungen oder - konfigurationen betriebsfähig. In mindestens einer Ausführungsform beinhalten Rechensysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Computersystem/Server 1204 geeignet sein können, Personalcomputersysteme, Server-Computersysteme, Thin Clients, Thick Clients, Handgeräte oder Laptop-Vorrichtungen, Multiprozessorsysteme, mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die ein beliebiges der oben genannten Systeme oder eine beliebige der oben genannten Vorrichtungen beinhalten, und/oder Variationen davon, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform kann das Computersystem/der Server 1204 in einem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen, wie etwa Programmmodulen, die durch ein Computersystem ausgeführt werden, beschrieben werden. In mindestens einer Ausführungsform beinhalten die Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw., die konkrete Tasks ausführen oder konkrete abstrakte Datenarten implementieren. In mindestens einer Ausführungsform kann das beispielhafte Computersystem/der beispielhafte Server 1204 in verteilten Cloud-Computing-Umgebungen in die Praxis umgesetzt sein, in denen Tasks durch entfernte Verarbeitungsvorrichtungen durchgeführt werden, die über ein Kommunikationsnetzwerk miteinander verbunden sind. In mindestens einer Ausführungsform können sich in einer verteilten Cloud-Computing-Umgebung Programmmodule sowohl auf lokalen als auch entfernten Computersystemspeichermedien, einschließlich Speichervorrichtungen, befinden.
  • 13 veranschaulicht einen Satz von funktionalen Abstraktionsschichten, der gemäß mindestens einer Ausführungsform durch die Cloud-Computing-Umgebung 1202 (12) bereitgestellt wird. Es sollte im Voraus verstanden werden, dass die in 13 gezeigten Komponenten, Schichten und Funktionen nur zur Veranschaulichung gedacht sind und Komponenten, Schichten und Funktionen variieren können.
  • In mindestens einer Ausführungsform beinhaltet die Hardware- und Softwareschicht 1302 Hardware- und Softwarekomponenten. In mindestens einer Ausführungsform beinhalten die Hardwarekomponenten Mainframes, verschiedene Server, die auf einer RISC-Architektur (Reduced Instruction Set Computer) basieren, verschiedene Rechensysteme, Superrechensysteme, Speichervorrichtungen, Netzwerke, Netzwerkkomponenten und/oder Variationen davon. In mindestens einer Ausführungsform beinhalten die Softwarekomponenten Netzwerkanwendungsserversoftware, verschiedene Anwendungsserversoftware, verschiedene Datenbanksoftware und/oder Variationen davon.
  • In mindestens einer Ausführungsform stellt die Virtualisierungsschicht 1302 eine Abstraktionsschicht bereit, von der die folgenden beispielhaften virtuellen Einheiten bereitgestellt werden können: virtuelle Server, virtueller Speicher, virtuelle Netzwerke, einschließlich virtueller privater Netzwerke, virtuelle Anwendungen, virtuelle Clients und/oder Variationen davon.
  • In mindestens einer Ausführungsform stellt die Verwaltungsschicht 1306 verschiedene Funktionen bereit. In mindestens einer Ausführungsform stellt Ressourcenbereitstellung eine dynamische Beschaffung von Rechenressourcen und anderen Ressourcen bereit, die genutzt werden, um Tasks innerhalb einer Cloud-Computing-Umgebung durchzuführen. In mindestens einer Ausführungsform stellt eine Verbrauchserfassung eine Nutzungsverfolgung, wenn Ressourcen innerhalb einer Cloud-Computing-Umgebung genutzt werden, und eine Abrechnung oder Fakturierung für den Verbrauch dieser Ressourcen bereit. In mindestens einer Ausführungsform können Ressourcen Anwendungssoftwarelizenzen umfassen. In mindestens einer Ausführungsform stellt eine Sicherheit eine Identitätsprüfung für Benutzer und Tasks sowie Schutz für Daten und andere Ressourcen bereit. In mindestens einer Ausführungsform stellt die Benutzerschnittstelle sowohl Benutzern als auch Systemadministratoren Zugriff auf eine Cloud-Computing-Umgebung bereit. In mindestens einer Ausführungsform stellt die Dienstebenenverwaltung die Zuweisung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die erforderlichen Dienstebenen erfüllt werden. In mindestens einer Ausführungsform stellt die Verwaltung der Dienstleistungsvereinbarung (Service Level Agreement - SLA) eine Vorab-Anordnung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß einem SLA eine zukünftige Anforderung erwartet wird.
  • In mindestens einer Ausführungsform stellt die Arbeitslastschicht 1308 eine Funktionalität bereit, für die eine Cloud-Computing-Umgebung verwendet wird. In mindestens einer Ausführungsform beinhalten Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, Folgendes: Zuordnung und Navigation, Softwareentwicklung und -verwaltung, Bildungsdienste, Datenanalyse und - verarbeitung, Transaktionsverarbeitung und Dienstbereitstellung.
  • SUPERCOMPUTER
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte supercomputerbasierte Systeme dar, die verwendet werden können, um mindestens eine Ausführungsform zu implementieren.
  • In mindestens einer Ausführungsform kann sich ein Supercomputer auf ein Hardwaresystem beziehen, das im Wesentlichen Parallelität aufweist und mindestens einen Chip umfasst, wobei Chips in einem System durch ein Netzwerk miteinander verbunden und in hierarchisch organisierten Gehäusen platziert sind. In mindestens einer Ausführungsform ist ein großes Hardwaresystem, das einen Maschinenraum mit mehreren Racks füllt, von denen jedes mehrere Platinen/Rack-Module enthält, von denen jedes mehrere Chips enthält, die alle durch ein skalierbares Netzwerk miteinander verbunden sind, mindestens eine Ausführungsform eines Supercomputers. In mindestens einer Ausführungsform ist ein einzelnes Rack eines solchen großen Hardwaresystems mindestens eine andere Ausführungsform eines Supercomputers. In mindestens einer Ausführungsform kann ein einzelner Chip, der eine beträchtliche Parallelität aufweist und mehrere Hardwarekomponenten enthält, gleichermaßen als Supercomputer angesehen werden, da mit abnehmenden Merkmalsgrößen auch eine Menge an Hardware, die in einen einzelnen Chip integriert werden kann, zunehmen kann.
  • 14 veranschaulicht einen Supercomputer auf Chipebene gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird innerhalb eines FPGA- oder ASIC-Chips der Hauptrechenaufwand in endlichen Zustandsmaschinen (SM) (1404) durchgeführt, die als Thread-Einheiten bezeichnet werden. In mindestens einer Ausführungsform verbinden Aufgaben- und Synchronisationsnetzwerke (1402) endliche Zustandsmaschinen und werden verwendet, um Threads abzuschicken und Operationen in der richtigen Reihenfolge auszuführen. In mindestens einer Ausführungsform wird unter Verwendung von Speichernetzwerken (1406, 1410) auf eine partitionierte Mehrebenen-Cache-Hierarchie (1408, 1412) auf einem Chip zugegriffen. In mindestens einer Ausführungsform wird auf einen chipexternen Speicher unter Verwendung von Speichersteuerungen (1416) und einem chipexternen Speichernetzwerk (1414) zugegriffen. In mindestens einer Ausführungsform wird eine E/A-Steuerung (1418) für die chipübergreifende Kommunikation verwendet, wenn eine Ausgestaltung nicht in einen einzelnen Logikchip passt.
  • 15 veranschaulicht einen Supercomputer auf Rack-Modulebene gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform gibt es innerhalb eines Rack-Moduls mehrere FPGA- oder ASIC-Chips (1502), die mit einer oder mehreren DRAM-Einheiten (1504) verbunden sind, die einen Hauptbeschleunigerspeicher bilden. In mindestens einer Ausführungsform ist jeder FPGA/ASIC-Chip mit seinem benachbarten FPGA/ASIC-Chip unter Verwendung von breiten Bussen auf einer Platine mit differentieller Hochgeschwindigkeitssignalisierung (1506) verbunden. In mindestens einer Ausführungsform ist jeder FPGA/ASIC-Chip auch mit mindestens einem seriellen Hochgeschwindigkeitskommunikationskabel verbunden.
  • 16 veranschaulicht einen Supercomputer auf Rack-Ebene gemäß mindestens einer Ausführungsform. 17 veranschaulicht einen Supercomputer auf Gesamtsystemebene gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform werden unter Bezugnahme auf 16 und 17 zwischen Rack-Modulen in einem Rack und über Racks hinweg durch ein gesamtes System serielle optische Hochgeschwindigkeits- oder Kupferkabel (1602, 1702) verwendet, um ein skalierbares, möglicherweise unvollständiges Hypercube-Netzwerk zu realisieren. In mindestens einer Ausführungsform ist einer der FPGA/ASIC-Chips eines Beschleunigers über eine PCI-Express-Verbindung (1704) mit einem Host-System verbunden. In mindestens einer Ausführungsform umfasst das Host-System einen Host-Mikroprozessor (1708), auf dem ein Softwareteil einer Anwendung läuft, und einen Speicher, der aus einer oder mehreren Host-Speicher-DRAM-Einheiten (1706) besteht und mit dem Speicher auf einem Beschleuniger kohärent gehalten wird. In mindestens einer Ausführungsform kann das Host-System ein separates Modul auf einem der Racks sein oder kann in eines der Module eines Supercomputers integriert sein. In mindestens einer Ausführungsform stellt eine Cube-verbundene Zyklen-Topologie Kommunikationsverbindungen bereit, um ein Hypercube-Netzwerk für einen großen Supercomputer zu schaffen. In mindestens einer Ausführungsform kann eine kleine Gruppe von FPGA/ASIC-Chips auf einem Rack-Modul als ein einzelner Hypercube-Knoten fungieren, sodass eine Gesamtzahl von externen Verbindungen jeder Gruppe im Vergleich zu einem einzelnen Chip erhöht ist. In mindestens einer Ausführungsform enthält eine Gruppe die Chips A, B, C und D auf einem Rack-Modul mit internen breiten differentiellen Bussen, die A, B, C und D in einer Torus-Organisation verbinden. In mindestens einer Ausführungsform gibt es 12 serielle Kommunikationskabel, die ein Rack-Modul mit der Außenwelt verbinden. In mindestens einer Ausführungsform ist Chip A auf einem Rack-Modul mit den seriellen Kommunikationskabeln 0, 1, 2 verbunden. In mindestens einer Ausführungsform ist Chip B mit den Kabeln 3, 4, 5 verbunden. In mindestens einer Ausführungsform ist Chip C mit 6, 7, 8 verbunden. In mindestens einer Ausführungsform ist Chip D mit 9, 10, 11 verbunden. In mindestens einer Ausführungsform kann eine gesamte Gruppe {A, B, C, D}, die ein Rack-Modul bildet, einen Hypercube-Knoten innerhalb eines Supercomputersystems mit bis zu 212 = 4096 Rack-Modulen (16384 FPGA/ASIC-Chips) bilden. In mindestens einer Ausführungsform muss, damit Chip A eine Nachricht auf Verbindung 4 der Gruppe {A, B, C, D} nach außen senden kann, zuerst eine Nachricht mit einer integrierten differentiellen breiten Busverbindung an Chip B geroutet werden. In mindestens einer Ausführungsform muss eine Nachricht, die in einer Gruppe {A, B, C, D} auf Verbindung 4 ankommt (d. h. bei B ankommt), die für Chip A bestimmt ist, auch zuerst an einen korrekten Zielchip (A) innerhalb einer Gruppe {A, B, C, D} intern geroutet werden. In mindestens einer Ausführungsform können auch parallele Supercomputersysteme anderer Größen implementiert sein.
  • KÜNSTLICHE INTELLIGENZ
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte Systeme auf Basis künstlicher Intelligenz dar, die verwendet werden können, um mindestens eine Ausführungsform zu implementieren.
  • 18A veranschaulicht Inferenz- und/oder Trainingslogik 1815, die zum Durchführen von Inferenz- und/oder Trainingsoperationen in Verbindung mit einer oder mehreren Ausführungsformen verwendet wird. Details bezüglich der Inferenz- und/oder Trainingslogik 1815 werden nachfolgend in Verbindung mit den 18A und/oder 18B bereitgestellt.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 ohne Einschränkung einen Code- und/oder Datenspeicher 1801 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 1815 einen Code- und/oder Datenspeicher 1801 beinhalten oder mit diesem gekoppelt sein, um Graphencode oder andere Software zu speichern, um die Zeitsteuerung und/oder die Reihenfolge zu steuern, in der Gewichtungs- und/oder andere Parameterinformationen geladen werden sollen, um Logik zu konfigurieren, die Ganzzahl- und/oder Gleitkommaeinheiten (zusammen arithmetisch-logische Einheiten (arithmetic logic units - ALUs)) beinhalten. 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 1801 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 Inferierens unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 1801 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, beinhaltet sein.
  • In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 1801 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 1801 Cache-Speicher, dynamischer zufällig adressierbarer Speicher (dynamic randomly addressable memory - „DRAM“), statischer zufällig adressierbarer Speicher (static randomly addressable memory - „SRAM“), nicht flüchtiger Speicher (z. B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann eine Entscheidung, ob der Code- und/oder Code- und/oder Datenspeicher 1801 intern oder extern zu einem Prozessor ist oder DRAM, SRAM, Flash oder einen anderen Speichertyp umfasst, davon abhängen, ob Speicher auf dem Chip oder außerhalb des Chips verfügbar ist, von den Anforderungen an die Latenzzeit der ausgeführten Trainings- und/oder Inferenzierungsfunktionen, von der Größe der beim Inferenzieren und/oder Trainieren eines neuronalen Netzes verwendeten Datenstapel oder von einer Kombination dieser Faktoren.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 ohne Einschränkung einen Code- und/oder Datenspeicher 1805 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 1805 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 Inferierens unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann die Trainingslogik 1815 Code- und/oder Datenspeicher 1805 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 Ganzzahl- und/oder Gleitkommaeinheiten (zusammen als arithmetisch-logische Einheiten (ALUs) bezeichnet).
  • In mindestens einer Ausführungsform bewirkt Code, wie etwa Diagrammcode, das Laden von Gewichtungsinformationen oder Informationen zu anderen Parametern in Prozessor-ALUs auf Grundlage einer Architektur eines neuronalen Netzes, dem ein solcher Code entspricht. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 1805 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, beinhaltet sein. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 1805 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 1805 Cache-Speicher, DRAM, SRAM, nicht flüchtiger Speicher (z. B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann eine Wahl, ob der Code- und/oder Datenspeicher 1805 zum Beispiel intern oder extern von einem Prozessor ist oder DRAM, SRAM, Flash oder eine andere Speicherart umfasst, von verfügbarem chipinternen im Vergleich zu chipexternen Speicher, Latenzanforderungen von ausgeführten Trainings- und/oder Inferenzfunktionen, Batchgröße von Daten, die beim Inferieren 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 1801 und der Code- und/oder Datenspeicher 1805 separate Speicherstrukturen sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 1801 und der Code- und/oder Datenspeicher 1805 eine kombinierte Speicherstruktur sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 1801 und der Code- und/oder Datenspeicher 1805 teilweise kombiniert und teilweise separat sein. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 1801 und des Code- und/oder Datenspeichers 1805 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, beinhaltet sein.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 ohne Einschränkung eine oder mehrere arithmetisch-logische Einheiten („ALU(s)“) 1810 beinhalten, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten, um logische und/oder mathematische Operationen durchzuführen, die mindestens zum Teil auf Trainings- und/oder Inferenzcode (z. B. Diagrammcode) 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 1820 gespeichert werden und abhängig von Eingabe/Ausgabe- und/oder Gewichtungsparameterdaten sind, die in dem Code- und/oder Datenspeicher 1801 und/oder dem Code- und/oder Datenspeicher 1805 gespeichert sind. In mindestens einer Ausführungsform werden in dem Aktivierungsspeicher 1820 gespeicherte Aktivierungen gemäß linearer algebraischer und/oder matrixbasierter Mathematik erzeugt, die durch die ALU(s) 1810 als Reaktion auf das Durchführen von Anweisungen oder anderem Code durchgeführt wird, wobei in dem Code- und/oder Datenspeicher 1805 und/oder dem Datenspeicher 1801 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 1805 oder dem Code- und/oder Datenspeicher 1801 oder einem anderen chipinternen oder -externen Speicher gespeichert sein können.
  • In mindestens einer Ausführungsform sind die ALU(s) 1810 innerhalb eines oder mehrerer Prozessoren oder anderen Hardware-Logikvorrichtungen oder - schaltungen beinhalten, während in einer anderen Ausführungsform die ALU(s) 1810 zu einem Prozessor oder einer anderen Hardware-Logikvorrichtung oder -schaltung extern sein können, der/die sie verwendet (z. B. ein Coprozessor). In mindestens einer Ausführungsform können die ALUs 1810 innerhalb der Ausführungseinheiten eines Prozessors oder anderweitig innerhalb einer Bank von ALUs beinhaltet 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 1801, der Code- und/oder Datenspeicher 1805 und der Aktivierungsspeicher 1820 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 1820 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, beinhaltet sein. Darüber hinaus kann Inferenz- und/oder Trainingscode mit anderem Code gespeichert werden, auf den ein Prozessor oder eine andere Hardwarelogik oder -schaltung zugreifen kann, und unter Verwendung der Abruf-, Decodier-, Planungs-, Ausführungs-, Stilllegungs- und/oder anderen logischen Schaltungen eines Prozessors abgerufen und/oder verarbeitet werden.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 1820 ein Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z. B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann sich der Aktivierungsspeicher 1820 ganz oder teilweise innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer logischer Schaltungen befinden. In mindestens einer Ausführungsform kann die Wahl, ob der Aktivierungsspeicher 1820 in mindestens einer Ausführungsform intern oder extern von einem Prozessor ist oder DRAM, SRAM, Flash oder eine andere Speicherart umfasst, von verfügbarem chipinternen im Vergleich zu chipexternen Speicher, Latenzanforderungen von ausgeführten Trainings- und/oder Inferenzfunktionen, Batchgröße von Daten, die beim Inferenzen 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 1815, die in 18A veranschaulicht ist, in Verbindung mit einer anwendungsspezifischen integrierten Schaltung („ASIC“) verwendet werden, wie etwa einer Tensorflow® Verarbeitungseinheit von Google, einer Inferenzverarbeitungseinheit (inference processing unit - IPU) von Graphcore™ oder einem Nervana® (z. B. „Lake Crest“)-Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815, die in 18A veranschaulicht ist, in Verbindung mit Hardware einer Zentraleinheit („CPU“), Hardware einer Grafikverarbeitungseinheit („GPU“) oder anderer Hardware, wie etwa feldprogrammierbaren Gatearrays („FPGA“) verwendet werden.
  • 18B veranschaulicht Inferenz- und/oder Trainingslogik 1815 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 ohne Einschränkung Folgendes beinhalten: Hardwarelogik, bei der Berechnungsressourcen 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 Inferenz- und/oder Trainingslogik 1815, die in 18B veranschaulicht ist, in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verwendet werden, wie etwa einer Tensorflow® Verarbeitungseinheit von Google, einer Inferenzverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana® (z. B. „Lake Crest“)-Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815, die in 18B veranschaulicht ist, in Verbindung mit Hardware einer Zentraleinheit (CPU), Hardware einer Grafikverarbeitungseinheit (GPU) oder anderer Hardware, wie etwa feldprogrammierbaren Gatearrays (FPGA) verwendet werden. In mindestens einer Ausführungsform beinhaltet die Inferenz- und/oder Trainingslogik 1815 ohne Einschränkung den Code- und/oder Datenspeicher 1801 und den Code- und/oder Datenspeicher 1805, die zum Speichern von Code (z. B. Graphencode), Gewichtungswerten und/oder anderen Informationen, einschließlich Vorspannungswerten, Gradienteninformationen, Momentwerten und/oder anderer Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer Ausführungsform, die in 18B veranschaulicht ist, ist jeder von dem Code- und/oder Datenspeicher 1801 und dem Code- und/oder Datenspeicher 1805 einer dedizierten Berechnungsressource, wie etwa der Berechnungshardware 1802 bzw. der Berechnungshardware 1806, zugeordnet. In mindestens einer Ausführungsform umfasst jede von der Berechnungshardware 1802 und der Berechnungshardware 1806 eine oder mehrere ALU, die mathematische Funktionen, wie etwa lineare algebraische Funktionen, nur an Informationen durchführen, die im Code- und/oder Datenspeicher 1801 und Code- und/oder Datenspeicher 1805 gespeichert sind, deren Ergebnis im Aktivierungsspeicher 1820 gespeichert ist.
  • In mindestens einer Ausführungsform entspricht jeder der Code- und/oder Datenspeicher 1801 und 1805 und die entsprechende Berechnungshardware 1802 bzw. 1806 verschiedenen Schichten eines neuronalen Netzes, sodass die resultierende Aktivierung von einem Speicher-/Rechenpaar 1801/1802 des Code- und/oder Datenspeichers 1801 und der Berechnungshardware 1802 als Eingabe für ein nächstes Speicher-/Rechenpaar 1805/1806 des Code- und/oder Datenspeichers 1805 und der Berechnungshardware 1806 bereitgestellt wird, um eine konzeptionelle Organisation eines neuronalen Netzes zu spiegeln. In mindestens einer Ausführungsform kann jedes der Speicher-/Rechenpaare 1801/1802 und 1805/1806 mehr als einer Schicht eines neuronalen Netzes entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher/Berechnungspaare (nicht gezeigt) nach oder parallel zu den Speicher/Berechnungspaaren 1801/1802 und 1805/1806 in der Inferenz- und/oder Trainingslogik 1815 beinhaltet sein.
  • 19 veranschaulicht das Training und den Einsatz eines tiefen neuronalen Netzes gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird das nicht trainierte neuronale Netz 1906 unter Verwendung eines Trainingsdatensatzes 1902 trainiert. In mindestens einer Ausführungsform ist das Trainings-Framework 1904 ein PyTorch-Framework, wohingegen in anderen Ausführungsformen das Trainings-Framework 1904 ein TensorFlow-, Boost-, Caffe-, Microsoft-Cognitive-Toolkit/CNTK-, MXNet-, Chainer-, Keras-, Deeplearning4j- oder ein anderes Trainings-Framework ist. In mindestens einer Ausführungsform trainiert das Trainings-Framework 1904 ein nicht trainiertes neuronales Netz 1906 und ermöglicht, dass es unter Verwendung von hierin beschriebenen Verarbeitungsressourcen trainiert wird, um ein trainiertes neuronales Netz 1908 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 nicht trainierte neuronale Netz 1906 unter Verwendung von überwachtem Lernen trainiert, wobei der Trainingsdatensatz 1902 eine Eingabe beinhaltet, die mit einer gewünschten Ausgabe für eine Eingabe gepaart ist, oder wobei der Trainingsdatensatz 1902 eine Eingabe beinhaltet, die eine bekannte Ausgabe aufweist, und eine Ausgabe des neuronalen Netzes 1906 manuell bewertet wird. In mindestens einer Ausführungsform wird das nicht trainierte neuronale Netz 1906 auf überwachte Weise trainiert und es verarbeitet Eingaben aus dem Trainingsdatensatz 1902 und vergleicht die resultierenden Ausgaben mit einem Satz von erwarteten oder gewünschten Ausgaben. In mindestens einer Ausführungsform werden Fehler dann durch das nicht trainierte neuronale Netz 1906 rückpropagiert. In mindestens einer Ausführungsform passt das Trainings-Framework 1904 Gewichtungen an, die das nicht trainierte neuronale Netz 1906 steuern. In mindestens einer Ausführungsform beinhaltet das Trainings-Framework 1904 Werkzeuge, um zu überwachen, wie gut das nicht trainierte neuronale Netz 1906 zu einem Modell konvergiert, wie etwa dem trainierten neuronalen Netz 1908, das dazu geeignet ist, korrekte Antworten zu erzeugen, wie etwa in dem Ergebnis 1914, die auf Eingabedaten wie etwa einem neuen Datensatz 1912 basieren. In mindestens einer Ausführungsform trainiert das Trainings-Framework 1904 das nicht trainierte neuronale Netz 1906 wiederholt, während Gewichtungen angepasst werden, um eine Ausgabe des nicht trainierten neuronalen Netzes 1906 unter Verwendung einer Verlustfunktion und eines Anpassungsalgorithmus, wie etwa des stochastischen Gradientenabstiegs, zu verfeinern. In mindestens einer Ausführungsform trainiert das Trainings-Framework 1904 das nicht trainierte neuronale Netz 1906, bis das nicht trainierte neuronale Netz 1906 eine gewünschte Genauigkeit erreicht. In mindestens einer Ausführungsform kann das trainierte neuronale Netz 1908 dann zum Implementieren einer beliebigen Anzahl von Operationen des maschinellen Lernens eingesetzt werden.
  • In mindestens einer Ausführungsform wird das nicht trainierte neuronale Netz 1906 unter Verwendung von nicht überwachtem Lernen trainiert, wobei das nicht trainierte neuronale Netz 1906 versucht, sich selbst unter Verwendung von unbeschrifteten Daten zu trainieren. In mindestens einer Ausführungsform beinhaltet der Trainingsdatensatz 1902 für nicht überwachtes Lernen Eingabedaten ohne verbundene Ausgabedaten oder „Ground-Truth“-Daten. In mindestens einer Ausführungsform kann das nicht trainierte neuronale Netz 1906 Gruppierungen innerhalb des Trainingsdatensatzes 1902 lernen und bestimmen, wie einzelne Eingaben mit dem nicht trainierten Datensatz 1902 in Bezug stehen. In mindestens einer Ausführungsform kann nicht überwachtes Training verwendet werden, um eine selbstorganisierende Karte in dem trainierten neuronalen Netz 1908 zu erzeugen, die dazu in der Lage ist, Operationen durchzuführen, die beim Reduzieren der Dimensionalität des neuen Datensatzes 1912 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 1912 ermöglicht, die von normalen Mustern des neuen Datensatzes 1912 abweichen.
  • In mindestens einer Ausführungsform kann halbüberwachtes Lernen verwendet werden, wobei es sich um eine Technik handelt, bei welcher der Trainingsdatensatz 1902 eine Mischung aus markierten und nicht markierten Daten beinhaltet. In mindestens einer Ausführungsform kann das Trainings-Framework 1904 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 1908, sich an den neuen Datensatz 1912 anzupassen, ohne das Wissen zu vergessen, das dem trainierten neuronalen Netz 1408 während des anfänglichen Trainings beigebracht wurde.
  • In mindestens einer Ausführungsform ist das Trainings-Framework 1904 ein Framework, das in Verbindung mit einem Softwareentwicklungs-Toolkit wie einem OpenVINO (Open Visual Inference and Neural Network Optimization) Toolkit verarbeitet wird. In mindestens einer Ausführungsform handelt es sich bei einem OpenVINO-Toolkit um ein Toolkit, wie es von der Intel Corporation in Santa Clara, CA, entwickelt wurde.
  • In mindestens einer Ausführungsform handelt es sich bei OpenVINO um ein Toolkit zur Erleichterung der Entwicklung von Anwendungen, insbesondere von Anwendungen für neuronale Netze, für verschiedene Aufgaben und Operationen, wie z. B. Emulation des menschlichen Sehens, Spracherkennung, Verarbeitung natürlicher Sprache, Empfehlungssysteme und/oder Variationen davon. In mindestens einer Ausführungsform unterstützt OpenVINO neuronale Netze wie z. B. faltende neuronale Netze (CNNs), rückgekoppelte und/oder aufmerksamkeitsbasierte neuronale Netze und/oder verschiedene andere Modelle für ein neuronales Netz. In mindestens einer Ausführungsform unterstützt OpenVINO verschiedene Softwarebibliotheken wie OpenCV, OpenCL und/oder Varianten davon.
  • In mindestens einer Ausführungsform unterstützt OpenVINO Modelle für ein neuronales Netz für verschiedene Aufgaben und Operationen, wie z. B. Klassifizierung, Segmentierung, Objekterkennung, Gesichtserkennung, Spracherkennung, Posenschätzung (z. B. von Menschen und/oder Objekten), monokulare Tiefenschätzung, Bild-Inpainting, Stiltransfer, Handlungserkennung, Kolorierung und/oder Variationen davon.
  • In mindestens einer Ausführungsform umfasst OpenVINO ein oder mehrere Softwaretools und/oder Module für eine Modelloptimierung, was auch als Modelloptimierer bezeichnet wird. In mindestens einer Ausführungsform handelt es sich bei einem Modelloptimierer um ein Kommandozeilenwerkzeug, das die Übergänge zwischen Training und Einsatz von Modellen eines neuronalen Netzes erleichtert. In mindestens einer Ausführungsform optimiert ein Modelloptimierer Modelle eines neuronalen Netzes für die Ausführung auf verschiedenen Einrichtungen und/oder Verarbeitungseinheiten, wie z. B. einer GPU, CPU, PPU, GPGPU und/oder Varianten davon. In mindestens einer Ausführungsform generiert ein Modelloptimierer eine interne Darstellung eines Modells und optimiert das Modell, um eine Zwischendarstellung zu generieren. In mindestens einer Ausführungsform reduziert ein Modelloptimierer die Anzahl der Schichten eines Modells. In mindestens einer Ausführungsform entfernt ein Modelloptimierer die Schichten eines Modells, die für das Training verwendet werden. In mindestens einer Ausführungsform führt ein Modelloptimierer verschiedene Operationen für neuronale Netze durch, wie z. B. das Ändern der Eingaben in ein Modell (z. B. Ändern der Größe der Eingaben in ein Modell), das Ändern der Größe der Eingaben eines Modells (z. B. Ändern der Stapelgröße eines Modells), das Ändern einer Modellstruktur (z. B. Modifizierung von Schichten eines Modells), eine Normalisierung, eine Standardisierung, eine Quantisierung (z. B. Konvertierung von Gewichten eines Modells von einer ersten Darstellung, wie z. B. Gleitkomma, in eine zweite Darstellung, wie z. B. Integer), und/oder Variationen davon.
  • In mindestens einer Ausführungsform umfasst OpenVINO eine oder mehrere Softwarebibliotheken für Inferenzierung, was auch als Inferenzmaschine bezeichnet wird. In mindestens einer Ausführungsform handelt es sich bei der Inferenzmaschine um eine C++-Bibliothek oder eine andere geeignete Bibliothek in einer Programmiersprache. In mindestens einer Ausführungsform wird eine Inferenzmaschine zum Inferenzieren von Eingabedaten verwendet. In mindestens einer Ausführungsform implementiert eine Inferenzmaschine verschiedene Klassen, um Eingabedaten zu inferenzieren und ein oder mehrere Ergebnisse zu generieren. In mindestens einer Ausführungsform implementiert eine Inferenzmaschine eine oder mehrere API-Funktionen, um eine Zwischendarstellung zu verarbeiten, Eingabe- und/oder Ausgabeformate festzulegen und/oder ein Modell auf einer oder mehreren Vorrichtungen auszuführen.
  • In mindestens einer Ausführungsform bietet OpenVINO verschiedene Möglichkeiten zur heterogenen Ausführung eines oder mehrerer Modelle eines neuronalen Netzes. In mindestens einer Ausführungsform bezieht sich die heterogene Ausführung oder das heterogene Computing auf einen oder mehrere Rechenprozesse und/oder Systeme, die einen oder mehrere Typen von Prozessoren und/oder Kernen verwenden. In mindestens einer Ausführungsform stellt OpenVINO verschiedene Softwarefunktionen zur Ausführung eines Programms auf einer oder mehreren Vorrichtungen bereit. In mindestens einer Ausführungsform stellt OpenVINO verschiedene Softwarefunktionen bereit, um ein Programm und/oder Abschnitte eines Programms auf verschiedenen Vorrichtungen auszuführen. In mindestens einer Ausführungsform stellt OpenVINO verschiedene Softwarefunktionen bereit, um z. B. einen ersten Abschnitt des Codes auf einer CPU und einen zweiten Abschnitt des Codes auf einer GPU und/oder FPGA auszuführen. In mindestens einer Ausführungsform stellt OpenVINO verschiedene Softwarefunktionen bereit, um eine oder mehrere Schichten eines neuronalen Netzes auf einer oder mehreren Vorrichtungen auszuführen (z. B. einen ersten Satz von Schichten auf einer ersten Vorrichtung, wie einer GPU, und einen zweiten Satz von Schichten auf einer zweiten Vorrichtung, wie einer CPU).
  • In mindestens einer Ausführungsform beinhaltet OpenVINO verschiedene Funktionalitäten, die denen eines CUDA-Programmiermodells ähneln, wie z. B. verschiedene Modelloperationen für neuronale Netze, die Frameworks wie TensorFlow, PyTorch und/oder Varianten davon zugeordnet sind. In mindestens einer Ausführungsform werden eine oder mehrere CUDA-Programmiermodelloperationen mit OpenVINO durchgeführt. In mindestens einer Ausführungsform sind verschiedene Systeme, Verfahren und/oder Techniken, die hier beschrieben sind, unter Verwendung von OpenVINO implementiert.
  • 5G-NETZWERKE
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte 5G-Netzwerkbasierte Systeme dar, die verwendet werden können, um mindestens eine Ausführungsform zu implementieren.
  • 20 veranschaulicht eine Architektur eines Systems 2000 eines Netzwerks gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist gezeigt, dass das System 2000 eine Benutzerausrüstung (UE) 2002 und eine UE 2004 beinhaltet. In mindestens einer Ausführungsform sind die UEs 2002 und 2004 als Smartphones (z. B. transportable mobile Touchscreen-Rechenvorrichtungen, die mit einem oder mehreren Mobilfunknetzwerken verbindbar sind) veranschaulicht, können aber auch eine beliebige mobile oder nicht mobile Rechenvorrichtung umfassen, wie beispielsweise persönliche Datenassistenten (PDAs), Pager, Laptop-Computer, Desktop-Computer, drahtlose Handgeräte oder eine beliebige Rechenvorrichtung, einschließlich einer drahtlosen Kommunikationsschnittstelle.
  • In mindestens einer Ausführungsform kann jedes der UEs 2002 und 2004 ein Internet-of-Things (loT)-UE umfassen, das eine Netzwerkzugangsschicht umfassen kann, die für loT-Anwendungen mit geringem Stromverbrauch und kurzlebigen UE-Verbindungen ausgestaltet ist. In mindestens einer Ausführungsform kann eine loT-UE Technologien wie Maschine-Maschine- (machine-to-machine - M2M) oder maschinelle Kommunikationen (machine-type communication - MTC) zum Austauschen von Daten mit einem MTC-Server oder einer MTC-Vorrichtung über ein öffentliches mobiles Landnetzwerk (public land mobile network - PLMN), einen näherungsbasierten Dienst (Proximity-Based Service - ProSe) oder Vorrichtung-Vorrichtung(device-to-device - D2D)-Kommunikation, Sensornetzwerke oder loT-Netzwerke nutzen. In mindestens einer Ausführungsform kann ein M2M- oder MTC-Datenaustausch ein maschineninitiierter Datenaustausch sein. In mindestens einer Ausführungsform beschreibt ein loT-Netzwerk das Verbinden von loT-UEs, die eindeutig identifizierbare eingebettete Rechenvorrichtungen (innerhalb der Internet-Infrastruktur) beinhalten können, mit kurzlebigen Verbindungen. In mindestens einer Ausführungsform können loT-UEs Hintergrundanwendungen ausführen (z. B. Keep-Alive-Nachrichten, Statusaktualisierungen usw.), um Verbindungen eines loT-Netzwerks zu ermöglichen.
  • In mindestens einer Ausführungsform können die UEs 2002 und 2004 dazu konfiguriert sein, sich mit einem Funkzugangsnetz (radio access network - RAN) 2016 zu verbinden, z. B. kommunikativ zu koppeln. In mindestens einer Ausführungsform kann das RAN 2016 in mindestens einer Ausführungsform ein Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN), ein NextGen RAN (NG RAN) oder eine andere Art von RAN sein. In mindestens einer Ausführungsform verwenden die UEs 2002 und 2004 Verbindungen 2012 bzw. 2014, von denen jede eine physische Kommunikationsschnittstelle oder - schicht umfasst. In mindestens einer Ausführungsform sind die Verbindungen 2012 und 2014 als eine Luftschnittstelle veranschaulicht, um eine kommunikative Kopplung zu ermöglichen, und können mit Mobilfunk-Kommunikationsprotokollen, wie etwa einem Global-System-for-Mobile-Communications(GSM)-Protokoll, einem Code-Division-Multiple-Access(CDMA)-Netzwerkprotokoll, einem Push-to-Talk(PTT)-Protokoll, einem PTT-over-Cellular(POC)-Protokoll, einem Universal-Mobile-Telecommunications-System(UMTS)-Protokoll, einem 3GPP-Long-Term-Evolution(LTE)-Protokoll, einem Fünfte-Generation(5G)-Protokoll, einem New-Radio(NR)-Protokoll und Variationen davon, übereinstimmen.
  • In mindestens einer Ausführungsform können die UEs 2002 und 2004 ferner Kommunikationsdaten direkt über eine ProSe-Schnittstelle 2006 austauschen. In mindestens einer Ausführungsform kann die ProSe-Schnittstelle 2006 alternativ als eine Sidelink-Schnittstelle bezeichnet werden, die einen oder mehrere logische Kanäle umfasst, einschließlich eines Physical-Sidelink-Control-Channel (PSCCH), Physical-Sidelink-Shared-Channel (PSSCH), Physical-Sidelink-Discovery-Channel (PSDCH) und Physical-Sidelink-Broadcast-Channel (PSBCH), ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform ist die UE 2004 der Darstellung nach konfiguriert, um über die Verbindung 2008 auf einen Zugangspunkt (access point - AP) 2010 zuzugreifen. In mindestens einer Ausführungsform kann die Verbindung 2008 eine lokale drahtlose Verbindung umfassen, wie etwa eine Verbindung, die mit einem beliebigen IEEE-802.11-Protokoll übereinstimmt, wobei der AP 2010 einen Wireless-Fidelity(WiFi®)-Router umfassen würde. In mindestens einer Ausführungsform ist gezeigt, dass der AP 2010 mit einem Internet verbunden ist, ohne sich mit einem Kernnetzwerk eines drahtlosen Systems zu verbinden.
  • In mindestens einer Ausführungsform kann das RAN 2016 einen oder mehrere Zugangsknoten beinhalten, die Verbindungen 2012 und 2014 ermöglichen. In mindestens einer Ausführungsform können diese Zugangsknoten (access nodes - AN) als Basisstationen (BS), NodeBs, evolved NodeBs (eNBs), NodeBs der nächsten Generation (gNB), RAN-Knoten usw. bezeichnet werden und können Bodenstationen (z. B. terrestrische Zugangspunkte) oder Satellitenstationen, die eine Abdeckung innerhalb eines geografischen Gebiets (z. B. einer Zelle) bereitstellen, umfassen. In mindestens einer Ausführungsform kann das RAN 2016 einen oder mehrere RAN-Knoten zum Bereitstellen von Makrozellen, z. B. Makro-RAN-Knoten 2018, und einen oder mehrere RAN-Knoten zum Bereitstellen von Femtozellen oder Picozellen (z. B. Zellen mit größeren Abdeckungsgebieten, kleinerer Benutzerkapazität oder größerer Bandbreite im Vergleich zu Makrozellen), z. B. RAN-Knoten 2020 mit geringer Leistung (low power - LP), beinhalten.
  • In mindestens einer Ausführungsform kann ein beliebiger der RAN-Knoten 2018 und 2020 ein Luftschnittstellenprotokoll beenden und kann ein erster Kontaktpunkt für die UEs 2002 und 2004 sein. In mindestens einer Ausführungsform kann ein beliebiger der RAN-Knoten 2018 und 2020 verschiedene logische Funktionen für das RAN 2016 erfüllen, einschließlich Funknetzwerksteuerungs(radio network controller - RNC)-Funktionen wie Funkträgerverwaltung, dynamische Uplink- und Downlink-Funkressourcenverwaltung und Datenpaket-Scheduling und Mobilitätsverwaltung, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform können die UEs 2002 und 2004 so konfiguriert sein, dass sie unter Verwendung von OFDM-Kommunikationssignalen (Orthogonal Frequency-Division Multiplexing - OFDM) miteinander oder mit einem der RAN-Knoten 2018 und 2020 über einen Mehrträger-Kommunikationskanal in Übereinstimmung mit verschiedenen Kommunikationstechniken kommunizieren, wie etwa, aber nicht beschränkt auf eine OFDMA-Kommunikationstechnik (Orthogonal Frequency Division Multiple Access - OFDMA) (z. B. für die Downlink-Kommunikation) oder eine Single-Carrier-Frequency-Division-Multiple-Access(SC-FDMA)-Kommunikationstechnik (z. B. für die Uplink- und ProSe- oder Sidelink-Kommunikation) und/oder Variationen davon. In mindestens einer Ausführungsform können OFDM-Signale eine Vielzahl von orthogonalen Teilträgern umfassen.
  • In mindestens einer Ausführungsform kann ein Downlink-Ressourcenraster für Downlink-Übertragungen von einem beliebigen der RAN-Knoten 2018 und 2020 zu den UEs 2002 und 2004 verwendet werden, während Uplink-Übertragungen ähnliche Techniken verwenden können. In mindestens einer Ausführungsform kann ein Raster ein Zeit-Frequenz-Raster sein, das als Ressourcenraster oder Zeit-Frequenz-Ressourcenraster bezeichnet wird, das eine physische Ressource in einem Downlink in jedem Zeitfenster ist. In mindestens einer Ausführungsform ist eine solche Zeit-Frequenz-Ebenen-Darstellung eine gängige Praxis für OFDM-Systeme, was sie für die Funkressourcenzuweisung intuitiv macht. In mindestens einer Ausführungsform entspricht jede Spalte und jede Zeile eines Ressourcenrasters einem OFDM-Symbol bzw. einem OFDM-Teilträger. In mindestens einer Ausführungsform entspricht eine Dauer eines Ressourcenrasters in einer Zeitdomäne einem Zeitfenster in einem Funkrahmen. In mindestens einer Ausführungsform wird eine kleinste Zeit-Frequenz-Einheit in einem Ressourcenraster als Ressourcenelement bezeichnet. In mindestens einer Ausführungsform umfasst jedes Ressourcenraster eine Reihe von Ressourcenblöcken, die eine Zuordnung bestimmter physischer Kanäle zu Ressourcenelementen beschreiben. In mindestens einer Ausführungsform umfasst jeder Ressourcenblock eine Sammlung von Ressourcenelementen. In mindestens einer Ausführungsform kann dies in einer Frequenzdomäne eine kleinste Menge an Ressourcen darstellen, die derzeit zugewiesen werden kann. In mindestens einer Ausführungsform gibt es mehrere unterschiedliche physische Downlink-Kanäle, die unter Verwendung solcher Ressourcenblöcke übermittelt werden.
  • In mindestens einer Ausführungsform kann ein gemeinsam genutzter physischer Abwärtskanal (physical downlink shared channel - PDSCH) Benutzerdaten und Signalisierung auf höherer Ebene zu den UEs 2002 und 2004 übertragen. In mindestens einer Ausführungsform kann ein Physical-Downlink-Control-Channel (PDCCH) unter anderem Informationen über ein Transportformat und Ressourcenzuweisungen in Bezug auf den PDSCH-Kanal übertragen. In mindestens einer Ausführungsform kann er die UEs 2002 und 2004 auch über ein Transportformat, eine Ressourcenzuweisung und HARQ(Hybrid Automatic Repeat Request)-Informationen bezüglich eines gemeinsam genutzten Uplink-Kanals informieren. In mindestens einer Ausführungsform kann typischerweise das Downlink-Scheduling (Zuweisen von Steuer- und Ressourcenblöcken eines gemeinsam genutzten Kanals zu der UE 2002 innerhalb einer Zelle) an einem beliebigen der RAN-Knoten 2018 und 2020 auf Grundlage von Kanalqualitätsinformationen durchgeführt werden, die von einer beliebigen der UEs 2002 und 2004 zurückgegeben werden. In mindestens einer Ausführungsform können Downlink-Ressourcenzuweisungsinformationen auf einem PDCCH gesendet werden, der für jede der UEs 2002 und 2004 verwendet (z. B. zugewiesen) wird.
  • In mindestens einer Ausführungsform kann ein PDCCH Steuerkanalelemente (control channel elements - CCEs) verwenden, um Steuerinformationen zu übermitteln. In mindestens einer Ausführungsform können komplexwertige PDCCH-Symbole, bevor sie Ressourcenelementen zugeordnet werden, zuerst in Quadrupel organisiert werden, die dann unter Verwendung eines Teilblock-Interleavers zur Ratenanpassung permutiert werden können. In mindestens einer Ausführungsform kann jeder PDCCH unter Verwendung einer oder mehrerer dieser CCEs übertragen werden, wobei jedes CCE neun Sätzen von vier physischen Ressourcenelementen entsprechen kann, die als Ressourcenelementgruppen (REGs) bekannt sind. In mindestens einer Ausführungsform können jeder REG vier Quadraturphasenumtastungs(Quadrature Phase Shift Keying - QPSK)-Symbole zugeordnet sein. In mindestens einer Ausführungsform kann der PDCCH unter Verwendung eines oder mehrerer CCEs übertragen werden, abhängig von einer Größe von Downlink-Steuerinformationen (downlink control information - DCI) und einem Kanalzustand. In mindestens einer Ausführungsform können vier oder mehr unterschiedliche PDCCH-Formate in LTE mit unterschiedlichen Anzahlen von CCEs definiert sein (z. B. Aggregationsebene, L = 1, 2, 4 oder 8).
  • In mindestens einer Ausführungsform kann ein Enhanced Physical Downlink Control Channel (EPDCCH), der PDSCH-Ressourcen verwendet, für die Übertragung von Steuerinformationen genutzt werden. In mindestens einer Ausführungsform kann der EPDCCH unter Verwendung eines oder mehrerer erweiterter Steuerkanalelemente (enhanced control channel elements - ECCEs) übertragen werden. In mindestens einer Ausführungsform kann jedes ECCE neun Sätzen von vier physischen Ressourcenelementen entsprechen, die als erweiterte Ressourcenelementgruppen (EREGs) bekannt sind. In mindestens einer Ausführungsform kann ein ECCE in einigen Situationen eine andere Anzahl von EREGs aufweisen.
  • In mindestens einer Ausführungsform ist das RAN 2016 über eine S1-Schnittstelle 2022 mit einem Kernnetzwerk (core network, CN) 2038 kommunikativ gekoppelt. In mindestens einer Ausführungsform kann das CN 2038 ein EPC-Netzwerk (Evolved Packet Core), ein NPC-Netzwerk (NextGen Packet Core) oder eine andere Art von CN sein. In mindestens einer Ausführungsform ist die S1-Schnittstelle 2022 in zwei Teile aufgeteilt: S1-U-Schnittstelle 2026, die Datenverkehrsdaten zwischen den RAN-Knoten 2018 und 2020 und dem bedienenden Gateway (S-GW) 2030 überträgt, und eine S1-Mobilitätsverwaltungseinheits(mobility management entity - MME)-Schnittstelle 2024, die eine Signalisierungsschnittstelle zwischen den RAN-Knoten 2018 und 2020 und den MMEs 2028 ist.
  • In mindestens einer Ausführungsform umfasst das CN 2038 MMEs 2028, ein S-GW 2030, ein Packet-Data-Network(Packet Data Network, PDN)-Gateway (P-GW) 2034 und einen Home-Subscriber-Server (home subscriber server - HSS) 2032. In mindestens einer Ausführungsform können die MMEs 2028 in ihrer Funktion einer Steuerebene von bedienenden Legacy- Unterstützungsknoten des General Packet Radio Service (GPRS) (Serving General Packet Radio Service Support Nodes - SGSN) ähnlich sein. In mindestens einer Ausführungsform können die MMEs 2028 Mobilitätsaspekte beim Zugriff verwalten, wie etwa die Gateway-Auswahl und die Verwaltung von Verfolgungsbereichslisten. In mindestens einer Ausführungsform kann der HSS 2032 eine Datenbank für Netzwerkbenutzer umfassen, einschließlich abonnementbezogener Informationen, um die Handhabung von Kommunikationssitzungen durch eine Netzwerkeinheit zu unterstützen. In mindestens einer Ausführungsform kann das CN 2038 einen oder mehrere HSSs 2032 umfassen, abhängig von einer Anzahl von Mobilfunkteilnehmern, von einer Kapazität einer Ausrüstung, von einer Organisation eines Netzwerks usw. In mindestens einer Ausführungsform kann der HSS 2032 Unterstützung für Routing/Roaming, Authentifizierung, Autorisierung, Namens-/Adressierungsauflösung, Standortabhängigkeiten usw. bereitstellen.
  • In mindestens einer Ausführungsform kann das S-GW 2030 eine S1-Schnittstelle 2022 in Richtung des RAN 2016 beenden und Datenpakete zwischen RAN 2016 und CN 2038 routen. In mindestens einer Ausführungsform kann das S-GW 2030 ein lokaler Mobilitätsankerpunkt für Inter-RAN-Knotenübergaben sein und kann auch einen Anker für Inter-3GPP-Mobilität bereitstellen. In mindestens einer Ausführungsform können andere Verantwortlichkeiten legales Abfangen, Gebühren und eine Durchsetzung gewisser Richtlinien beinhalten.
  • In mindestens einer Ausführungsform kann das P-GW 2034 eine SGi-Schnittstelle in Richtung eines PDN beenden. In mindestens einer Ausführungsform kann das P-GW 2034 Datenpakete zwischen einem EPC-Netzwerk 2038 und externen Netzwerken, wie etwa einem Netzwerk, das den Anwendungsserver 2040 (alternativ als Anwendungsfunktion (AF) bezeichnet) beinhaltet, über eine Internetprotokoll(IP-)Schnittstelle 2042 routen. In mindestens einer Ausführungsform kann der Anwendungsserver 2040 ein Element sein, das Anwendungen bietet, die IP-Trägerressourcen mit einem Kernnetz verwenden (z. B. UMTS-Paketdienste(PS-)Domäne, LTE-PS-Datendienste usw.). In mindestens einer Ausführungsform ist gezeigt, dass das P-GW 2034 über eine IP-Kommunikationsschnittstelle 2042 kommunikativ an einen Anwendungsserver 2040 gekoppelt ist. In mindestens einer Ausführungsform kann der Anwendungsserver 2040 auch konfiguriert sein, um einen oder mehrere Kommunikationsdienste (z. B. Voice-over-Internet-Protocol(VoIP)-Sitzungen, PTT-Sitzungen, Gruppenkommunikationssitzungen, soziale Netzwerkdienste usw.) für die UEs 2002 und 2004 über das CN 2038 zu unterstützen.
  • In mindestens einer Ausführungsform kann das P-GW 2034 außerdem ein Knoten für die Durchsetzung von Richtlinien und die Sammlung von Gebührendaten sein. In mindestens einer Ausführungsform ist die Richtlinien- und Gebührendurchsetzungsfunktion (policy and charging enforcement function - PCRF) 2036 ein Richtlinien- und Gebührensteuerelement des CN 2038. In mindestens einer Ausführungsform kann es in einem Nicht-Roaming-Szenario ein einzelnes PCRF in einem öffentlichen terrestrischen Mobilfunknetzwerk (Home Public Land Mobile Network - HPLMN) geben, das einer Sitzung des Internet Protocol Connectivity Access Network (IP-CAN) einer UE zugeordnet ist. In mindestens einer Ausführungsform kann es in einem Roaming-Szenario mit lokalem Datenverkehrsausbruch zwei PCRF geben, die einer IP-CAN-Sitzung einer UE zugeordnet sind: eine Heimat-PCRF (H-PCRF) innerhalb eines HPLMN und eine besuchte PCRF (Visited PCRF - V-PCRF) innerhalb eines besuchten öffentlichen terrestrischen Mobilfunknetzwerks (Visited Public Land Mobile Network - VPLMN). In mindestens einer Ausführungsform kann die PCRF 2036 über das P-GW 2034 kommunikativ an einen Anwendungsserver 2040 gekoppelt sein. In mindestens einer Ausführungsform kann der Anwendungsserver 2040 der PCRF 2036 signalisieren, einen neuen Dienstfluss anzugeben und eine geeignete Dienstgüte (Quality of Service - QoS) und Gebührenparameter auszuwählen. In mindestens einer Ausführungsform kann die PCRF 2036 diese Regel in einer Richtlinien- und Gebührendurchsetzungsfunktion (Policy and Charging Enforcement Function - PCEF) (nicht gezeigt) mit einer geeigneten Datenverkehrsflussschablone (Traffic Flow Template - TFT) und QoS-Kennungsklasse (QoS dass of identifier - QCI) bereitstellen, die eine QoS und Gebühren, wie durch Anwendungsserver 2040 festgelegt, beginnt.
  • 21 veranschaulicht eine Architektur eines Systems 2100 eines Netzwerks gemäß einigen Ausführungsformen. In mindestens einer Ausführungsform ist gezeigt, dass das System 2100 eine UE 2102, einen 5G-Zugangsknoten oder RAN-Knoten (gezeigt als (R)AN-Knoten 2108), eine Benutzerebenenfunktion (gezeigt als UPF 2104), ein Datennetzwerk (DN 2106), das in mindestens einer Ausführungsform Betreiberdienste, Internetzugang oder Dienste von Drittanbietern sein können, und ein 5G-Kernnetzwerk (5GC) (als CN 2110 gezeigt) beinhaltet.
  • In mindestens einer Ausführungsform beinhaltet das CN 2110 eine Authentifizierungsserverfunktion (Authentication Server Function - AUSF 2114), eine Kernzugangs- und Mobilitätsmanagementfunktion (Core Access and Mobility Management Function - AMF 2112), eine Sitzungsmanagementfunktion (Session Management Function - SMF 2118), eine Netzwerkexpositionsfunktion (Network Exposure Function - NEF 2116), eine Richtliniensteuerungsfunktion (Policy Control Function -, PCF 2122), eine Netzwerkfunktions(Network Function - NF)-Speicherfunktion (Repository Function - NRF 2120), eine einheitliche Datenverwaltung (Unified Data Management - UDM 2124) und eine Anwendungsfunktion (Application Function - AF 2126). In mindestens einer Ausführungsform kann das CN 2110 auch andere Elemente beinhalten, die nicht gezeigt sind, wie etwa eine strukturierte Datenspeicherungsnetzwerkfunktion (Structured Data Storage network function - SDSF), eine unstrukturierte Datenspeicherungsnetzwerkfunktion (Unstructured Data Storage network function - UDSF) und Variationen davon.
  • In mindestens einer Ausführungsform kann die UPF 2104 als Ankerpunkt für Intra-RAT- und Inter-RAT-Mobilität, ein externer PDU-Sitzungspunkt der Verschaltung mit dem DN 2106 und ein Verzweigungspunkt zum Unterstützen einer mehrfach vernetzten PDU-Sitzung dienen. In mindestens einer Ausführungsform kann die UPF 2104 auch Paket-Routing und -Weiterleitung, Paket-Inspektion durchführen, einen Teil von Richtlinienregeln auf Benutzerebene durchsetzen, Pakete legal abfangen (UP-Sammlung); Datenverkehrsnutzungsberichte, QoS-Handhabung für die Benutzerebene durchführen (z. B. Paketfilterung, Gating, UL/DL-Ratendurchsetzung), Uplink-Datenverkehrsverifizierung (z. B. SDF-zu-QoS-Flow-Mapping), Paketmarkierung auf Transportebene in Uplink und Downlink und Downlink-Paketpufferung und Downlink-Datenbenachrichtigungsauslösung durchführen. In mindestens einer Ausführungsform kann die UPF 2104 einen Uplink-Klassifizierer beinhalten, um das Routing von Datenverkehrsflüssen zu einem Datennetzwerk zu unterstützen. In mindestens einer Ausführungsform kann das DN 2106 verschiedene Netzwerkbetreiberdienste, Internetzugang oder Drittanbieterdienste darstellen.
  • In mindestens einer Ausführungsform kann die AUSF 2114 Daten zur Authentifizierung der UE 2102 speichern und authentifizierungsbezogene Funktionalität handhaben. In mindestens einer Ausführungsform kann die AUSF 2114 ein gemeinsames Authentifizierungsframework für verschiedene Zugriffsarten ermöglichen.
  • In mindestens einer Ausführungsform kann die AMF 2112 für die Registrierungsverwaltung (z. B. für die Registrierung der UE 2102 usw.), die Verbindungsverwaltung, die Erreichbarkeitsverwaltung, die Mobilitätsverwaltung und das legale Abfangen von AMF-bezogenen Ereignissen und die Zugriffsauthentifizierung und -autorisierung verantwortlich sein. In mindestens einer Ausführungsform kann die AMF 2112 den Transport von SM-Nachrichten für die SMF 2118 bereitstellen und als transparenter Proxy zum Routen von SM-Nachrichten fungieren. In mindestens einer Ausführungsform kann die AMF 2112 auch den Transport von Kurznachrichtendienst (SMS)-Nachrichten zwischen dem UE 2102 und einer SMS-Funktion (SMSF) (in 21 nicht gezeigt) bereitstellen. In mindestens einer Ausführungsform kann die AMF 2112 als Sicherheitsankerfunktion (Security Anchor Function - SEA) fungieren, die eine Interaktion mit der AUSF 2114 und der UE 2102 und den Empfang eines Zwischenschlüssels beinhalten kann, der als Ergebnis des UE 2102-Authentifizierungsprozesses erstellt wurde. In mindestens einer Ausführungsform, bei der eine USIM-basierte Authentifizierung verwendet wird, kann die AMF 2112 Sicherheitsmaterial von der AUSF 2114 abrufen. In mindestens einer Ausführungsform kann die AMF 2112 auch eine Sicherheitskontextverwaltungsfunktion (Security Context Management - SCM) beinhalten, die einen Schlüssel von der SEA empfängt, den sie verwendet, um zugangsnetzwerkspezifische Schlüssel abzuleiten. In mindestens einer Ausführungsform kann die AMF 2112 außerdem ein Abschlusspunkt der RAN-CP-Schnittstelle (N2-Referenzpunkt), ein Abschlusspunkt der NAS(NI)-Signalisierung sein und NAS-Verschlüsselung und Integritätsschutz durchführen.
  • In mindestens einer Ausführungsform kann die AMF 2112 auch die NAS-Signalisierung mit einem UE 2102 über eine N3-lnterworking-Function(IWF)-Schnittstelle unterstützen. In mindestens einer Ausführungsform kann die N3IWF verwendet werden, um Zugriff auf nicht vertrauenswürdige Einheiten bereitzustellen. In mindestens einer Ausführungsform kann die N3IWF ein Abschlusspunkt für N2- und N3-Schnittstellen für die Steuerebene bzw. die Benutzerebene sein und kann somit N2-Signalisierung von der SMF und der AMF für PDU-Sitzungen und QoS handhaben, Datenpakete für IPSec- und N3-Tunneling einkapseln/entkapseln, N3-Benutzerebenen-Pakete im Uplink markieren und QoS entsprechend der N3-Paketmarkierung unter Berücksichtigung der QoS-Anforderungen durchsetzen, die einer solchen über N2 empfangenen Markierung zugeordnet sind. In mindestens einer Ausführungsform kann die N3IWF auch Uplink- und Downlink-Steuerebenen-NAS(NI)-Signalisierung zwischen der UE 2102 und der AMF 2112 weiterleiten und Uplink- und Downlink-Benutzerebenenpakete zwischen der UE 2102 und der UPF 2104 weiterleiten. In mindestens einer Ausführungsform stellt die N3IWF auch Mechanismen für den IPsec-Tunnelaufbau mit der UE 2102 bereit.
  • In mindestens einer Ausführungsform kann die SMF 2118 für die Sitzungsverwaltung (z. B. Sitzungsaufbau, Modifizierung und Freigabe, einschließlich Aufrechterhaltung des Tunnels zwischen der UPF und dem AN-Knoten); UE-IP-Adresszuweisung und -verwaltung (einschließlich optionaler Autorisierung); Auswahl und Steuerung der UP-Funktion; Konfiguration der Verkehrssteuerung an der UPF, um den Verkehr an das richtige Ziel zu routen; Beendigung von Schnittstellen zu Richtliniensteuerungsfunktionen; Steuerung eines Teils der Richtliniendurchsetzung und QoS; legales Abfangen (für SM-Ereignisse und Schnittstelle zum LI-System); Beendigung von SM-Teilen von NAS-Nachrichten; Downlink-Datenbenachrichtigung; Initiator von AN-spezifischen SM-Informationen, die über AMF über N2 an den AN gesendet werden; Bestimmen des SSC-Modus einer Sitzung verantwortlich sein. In mindestens einer Ausführungsform kann die SMF 2118 die folgende Roaming-Funktionalität beinhalten: Handhaben der lokalen Durchsetzung, um QoS SLAB (VPLMN) anzuwenden; Gebührendatensammlung und Gebührenschnittstelle (VPLMN); legales Abfangen (im VPLMN für SM-Ereignisse und Schnittstelle zum LI-System); Unterstützung für die Interaktion mit dem externen DN für den Transport von Signalisierung für die PDU-Sitzungsautorisierung/-authentifizierung durch das externe DN.
  • In mindestens einer Ausführungsform kann die NEF 2116 Mittel zur sicheren Offenlegung von Diensten und Fähigkeiten, die durch 3GPP-Netzwerkfunktionen für Dritte bereitgestellt sind, internen Offenlegung/erneuten Offenlegung, Anwendungsfunktionen (z. B. AF 2126), Edge-Computing- oder Fog-Computing-Systemen usw. bereitstellen. In mindestens einer Ausführungsform kann die NEF 2116 AFs authentifizieren, autorisieren und/oder drosseln. In mindestens einer Ausführungsform kann die NEF 2116 auch mit der AF 2126 ausgetauschte Informationen und mit internen Netzwerkfunktionen ausgetauschte Informationen übersetzen. In mindestens einer Ausführungsform kann die NEF 2116 zwischen einer AF-Dienstkennung und einer internen 5GC-Information übersetzen. In mindestens einer Ausführungsform kann die NEF 2116 auch Informationen von anderen Netzwerkfunktionen (NF) auf Grundlage von offengelegten Fähigkeiten anderer Netzwerkfunktionen empfangen. In mindestens einer Ausführungsform können diese Informationen als strukturierte Daten in der NEF 2116 oder in einer Datenspeicher-NF unter Verwendung standardisierter Schnittstellen gespeichert werden. In mindestens einer Ausführungsform können gespeicherte Informationen dann durch die NEF 2116 anderen NF und AF erneut offengelegt und/oder für andere Zwecke, wie etwa Analysen, verwendet werden.
  • In mindestens einer Ausführungsform kann die NRF 2120 Diensterkennungsfunktionen unterstützen, NF-Erkennungsanforderungen von NF-Instanzen empfangen und Informationen über erkannte NF-Instanzen an NF-Instanzen bereitstellen. In mindestens einer Ausführungsform pflegt die NRF 2120 auch Informationen über verfügbare NF-Instanzen und deren unterstützte Dienste.
  • In mindestens einer Ausführungsform kann die PCF 2122 Regeln für die Funktion(en) der Steuerungsebene bereitstellen, um diese durchzusetzen, und sie kann auch ein einheitliches Regelwerk zur Steuerung des Netzwerkverhaltens unterstützen. In mindestens einer Ausführungsform kann die PCF 2122 auch ein Frontend (FE) implementieren, um auf Abonnementinformationen zuzugreifen, die für Richtlinienentscheidungen in einem UDR der UDM 2124 relevant sind.
  • In mindestens einer Ausführungsform kann die UDM 2124 abonnementbezogene Informationen verarbeiten, um die Abwicklung von Kommunikationssitzungen durch Netzwerkentitäten zu unterstützen, und kann Abonnementdaten der UE 2102 speichern. In mindestens einer Ausführungsform kann die UDM 2124 zwei Teile beinhalten, ein Anwendungs-FE und ein Benutzerdaten-Repository (User Data Repository - UDR). In mindestens einer Ausführungsform kann die UDM ein UDM-FE beinhalten, das für die Verarbeitung von Zugangsdaten, Standortverwaltung, Abonnementverwaltung usw. verantwortlich ist. In mindestens einer Ausführungsform können mehrere unterschiedliche Frontends einen gleichen Benutzer in unterschiedlichen Transaktionen bedienen. In mindestens einer Ausführungsform greift das UDM-FE auf Abonnementinformationen zu, die in einem UDR gespeichert sind, und führt Authentifizierungszugangsdatenverarbeitung; Handhabung der Benutzeridentifizierung; Zugriffsberechtigung; Registrierung/Mobilitätsverwaltung; und Abonnementverwaltung durch. In mindestens einer Ausführungsform kann das UDR mit der PCF 2122 interagieren. In mindestens einer Ausführungsform kann die UDM 2124 auch SMS-Verwaltung unterstützen, wobei ein SMS-FE eine ähnliche Anwendungslogik wie zuvor erörtert implementiert.
  • In mindestens einer Ausführungsform kann die AF 2126 den Einfluss der Anwendung auf die Verkehrslenkung, den Zugang zu einem Network-Capability-Exposure (NCE) und die Interaktion mit einem Policy Framework zur Richtliniensteuerung bereitstellen. In mindestens einer Ausführungsform kann die NCE ein Mechanismus sein, der es einem 5GC und einer AF 2126 erlaubt, einander über NEF 2116 Informationen bereitzustellen, die für Edge-Computing-Implementierungen verwendet werden können. In mindestens einer Ausführungsform können Dienste des Netzwerkbetreibers und von Drittanbietern in der Nähe des Zugangspunkts der UE 2102 gehostet werden, um eine effiziente Dienstbereitstellung durch eine reduzierte Ende-zu-Ende-Latenz und Belastung auf einem Transportnetzwerk zu erreichen. In mindestens einer Ausführungsform kann das 5GC für Edge-Computing-Implementierungen eine UPF 2104 in der Nähe der UE 2102 auswählen und die Datenverkehrssteuerung von der UPF 2104 zu dem DN 2106 über die N6-Schnittstelle ausführen. In mindestens einer Ausführungsform kann dies auf UE-Abonnementdaten, dem UE-Standort und durch die AF 2126 bereitgestellten Informationen basieren. In mindestens einer Ausführungsform kann die AF 2126 die UPF-(Neu-)Auswahl und das Datenverkehrsrouting beeinflussen. In mindestens einer Ausführungsform kann ein Netzwerkbetreiber auf Grundlage von dem Einsatz des Betreibers, wenn die AF 2126 als eine vertrauenswürdige Einheit betrachtet wird, der AF 2126 erlauben, direkt mit relevanten NF zu interagieren.
  • In mindestens einer Ausführungsform kann das CN 2110 einen SMSF beinhalten, der für die Überprüfung und Verifizierung von SMS-Abonnements und die Weiterleitung von SM-Nachrichten an/von UE 2102 an/von anderen Stellen, wie etwa einem SMS-GMSC/IWMSC/SMS-Router, verantwortlich sein kann. In mindestens einer Ausführungsform kann SMS auch mit AMF 2112 und UDM 2124 für eine Benachrichtigungsprozedur interagieren, dass die UE 2102 für die SMS-Übertragung verfügbar ist (z. B. ein UE-Nichterreichbar-Flag setzen und die UDM 2124 benachrichtigen, wenn die UE 2102 für SMS verfügbar ist).
  • In mindestens einer Ausführungsform kann das System 2100 die folgenden dienstbasierten Schnittstellen beinhalten: Namf: durch die AMF gezeigte dienstbasierte Schnittstelle; Nsmf: durch die SMF gezeigte dienstbasierte Schnittstelle; Nnef: durch die NEF gezeigte dienstbasierte Schnittstelle; Npcf: durch die PCF gezeigte dienstbasierte Schnittstelle; Nudm: durch die UDM gezeigte dienstbasierte Schnittstelle; Naf: durch die AF gezeigte dienstbasierte Schnittstelle; Nnrf: durch die NRF gezeigte dienstbasierte Schnittstelle; und Nausf: durch die AUSF gezeigte dienstbasierte Schnittstelle.
  • In mindestens einer Ausführungsform kann das System 2100 die folgenden Referenzpunkte beinhalten: N1: Referenzpunkt zwischen UE und AMF; N2: Referenzpunkt zwischen (R)AN und AMF; N3: Referenzpunkt zwischen (R)AN und UPF; N4: Referenzpunkt zwischen SMF und UPF; und N6: Referenzpunkt zwischen UPF und einem Datennetzwerk. In mindestens einer Ausführungsform kann es viel mehr Referenzpunkte und/oder dienstbasierte Schnittstellen zwischen NF-Diensten in NF geben, jedoch wurden diese Schnittstellen und Referenzpunkte aus Gründen der Übersichtlichkeit weggelassen. In mindestens einer Ausführungsform kann ein NS-Referenzpunkt zwischen der PCF und der AF liegen; kann ein N7-Referenzpunkt zwischen der PCF und der SMF liegen; ein N11-Referenzpunkt zwischen der AMF und der SMF; usw. In mindestens einer Ausführungsform kann das CN 2110 eine Nx-Schnittstelle beinhalten, die eine Inter-CN-Schnittstelle zwischen MME und AMF 2112 ist, um eine Zusammenarbeit zwischen dem CN 2110 und dem CN 7221 zu ermöglichen.
  • In mindestens einer Ausführungsform kann das System 2100 mehrere RAN-Knoten (wie etwa (R)AN-Knoten 2108) beinhalten, wobei eine Xn-Schnittstelle zwischen zwei oder mehr (R)AN-Knoten 2108 (z. B. gNBs) definiert ist, die mit 5GC 410 verbunden sind, zwischen einem (R)AN-Knoten 2108 (z. B. gNB), der mit CN 2110 verbunden ist, und einem eNB (z. B. einem Makro-RAN-Knoten) und/oder zwischen zwei eNBs, die mit CN 2110 verbunden sind.
  • In mindestens einer Ausführungsform kann die Xn-Schnittstelle eine Schnittstelle der Xn-Benutzerebene (Xn-U) und eine Schnittstelle der Xn-Steuerungsebene (Xn-C) beinhalten. In mindestens einer Ausführungsform kann Xn-U eine nicht garantierte Zustellung von Benutzerebenen-PDU bereitstellen und eine Datenweiterleitungs- und Flusssteuerungsfunktionalität unterstützen/bereitstellen. In mindestens einer Ausführungsform kann Xn-C eine Verwaltungs- und Fehlerbehandlungsfunktionalität, eine Funktionalität zum Verwalten einer Xn-C-Schnittstelle; Mobilitätsunterstützung für die UE 2102 in einem verbundenen Modus (z. B. CM-CONNECTED), einschließlich der Funktionalität zum Verwalten der UE-Mobilität für den verbundenen Modus zwischen einem oder mehreren (R)AN-Knoten 2108, bereitstellen. In mindestens einer Ausführungsform kann die Mobilitätsunterstützung einen Kontexttransfer von einem alten bedienenden (R)AN-Knoten 2108 (Quelle) zu einem neuen bedienenden (R)AN-Knoten 2108 (Ziel); und Steuerung von Benutzerebenen-Tunneln zwischen dem alten bedienenden (R)AN-Knoten 2108 (Quelle) zu dem neuen bedienenden (R)AN-Knoten 2108 (Ziel) beinhalten.
  • In mindestens einer Ausführungsform kann ein Protokollstapel eines Xn-U eine Transportnetzschicht, die auf der Transportschicht des Internetprotokolls (IP) aufbaut, und eine GTP-U-Schicht auf der/den UDP- und/oder IP-Schicht(en) zur Übertragung von PDUs der Benutzerebene beinhalten. In mindestens einer Ausführungsform kann der Xn-C-Protokollstapel ein Signalisierungsprotokoll der Anwendungsschicht (als Xn-Anwendungsprotokoll (Xn-AP) bezeichnet) und eine Transportnetzwerkschicht, die auf einer SCTP-Schicht aufgebaut ist, beinhalten. In mindestens einer Ausführungsform kann sich die SCTP-Schicht auf einer IP-Schicht befinden. In mindestens einer Ausführungsform stellt die SCTP-Schicht eine garantierte Zustellung von Nachrichten der Anwendungsschicht bereit. In mindestens einer Ausführungsform wird in einer Transport-IP-Schicht eine Punkt-zu-Punkt-Übertragung verwendet, um Signalisierungs-PDUs zuzustellen. In mindestens einer Ausführungsform können der Xn-U-Protokollstapel und/oder ein Xn-C-Protokollstapel gleich oder ähnlich einem Benutzerebenen- und/oder Steuerebenen-Protokollstapel sein, die hierin gezeigt und beschrieben sind.
  • 22 ist eine Veranschaulichung eines Protokollstapels auf Steuerebene gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird eine Steuerebene 2200 als Kommunikationsprotokollstapel zwischen der UE 2002 (oder alternativ der UE 2004), dem RAN 2016 und den MME 2028 gezeigt.
  • In mindestens einer Ausführungsform kann die PHY-Schicht 2202 Informationen, die von der MAC-Schicht 2204 verwendet werden, über eine oder mehrere Luftschnittstellen senden oder empfangen. In mindestens einer Ausführungsform kann die PHY-Schicht 2202 ferner eine Verbindungsanpassung oder adaptive Modulation und Codierung (AMC), Leistungssteuerung, Zellensuche (z. B. für anfängliche Synchronisations- und Übergabezwecke) und andere Messungen durchführen, die durch höhere Schichten verwendet werden, wie etwa eine RRC-Schicht 2210. In mindestens einer Ausführungsform kann die PHY-Schicht 2202 weiterhin eine Fehlererkennung auf Transportkanälen, eine Vorwärtsfehlerkorrektur(forward error correction - FEC)-Codierung/-Decodierung von Transportkanälen, eine Modulation/Demodulation von physischen Kanälen, eine Verschachtelung, eine Ratenanpassung, eine Zuordnung auf physische Kanäle und Multiple-Input-Multiple-Output(MIMO)-Antennenverarbeitung durchführen.
  • In mindestens einer Ausführungsform kann die MAC-Schicht 2204 die Zuordnung zwischen logischen Kanälen und Transportkanälen, das Multiplexen von MAC-Dienstdateneinheiten (SDUs) von einem oder mehreren logischen Kanälen auf Transportblöcke (TB), die über Transportkanäle an die PHY zu liefern sind, das Entmultiplexen von MAC-SDUs auf einen oder mehrere logische Kanäle von Transportblöcken (TB), die von der PHY über Transportkanäle geliefert werden, das Multiplexen von MAC-SDUs auf TBs, die Meldung von Planungsinformationen, die Fehlerkorrektur durch hybride automatische Wiederholungsanforderung (HARD) und die Priorisierung logischer Kanäle durchführen.
  • In mindestens einer Ausführungsform kann die RLC-Schicht 2206 in einer Vielzahl von Betriebsmodi arbeiten, darunter: Transparent-Mode (Transparent Mode - TM), Unacknowledged-Mode (Unacknowledged Mode - UM) und Acknowledged-Mode (Acknowledged Mode - AM). In mindestens einer Ausführungsform kann die RLC-Schicht 2206 einen Transfer von Protokolldateneinheiten (PDU) der oberen Schicht, eine Fehlerkorrektur durch automatische Wiederholungsanforderung (automatic repeat request - ARQ) für AM-Datenübertragungen und eine Verkettung, Segmentierung und Wiederzusammensetzung von RLC-SDU für UM- und AM-Datentransfers ausführen. In mindestens einer Ausführungsform kann die RLC-Schicht 2206 auch eine Neusegmentierung von RLC-Daten-PDUs für AM-Datentransfers ausführen, RLC-Daten-PDUs für UM- und AM-Datentransfers neu anordnen, doppelte Daten für UM- und AM-Datenübertragungen erkennen, RLC-SDUs für UM- und AM-Datentransfers verwerfen, Protokollfehler für AM-Datentransfers erkennen und RLC-Wiederherstellung durchführen.
  • In mindestens einer Ausführungsform kann die PDCP-Schicht 2208 eine Header-Komprimierung und -Dekomprimierung von IP-Daten durchführen, PDCP-Sequenznummern (SNs) beibehalten, eine sequenzgenaue Zustellung von PDUs der oberen Schicht bei der Wiederherstellung der unteren Schichten durchführen, Duplikate von SDUs der unteren Schicht bei der Wiederherstellung der unteren Schichten für Funkträger, die auf RLC AM abgebildet sind, beseitigen, Daten der Steuerebene verschlüsseln und entschlüsseln, einen Integritätsschutz und eine Integritätsüberprüfung von Daten der Steuerebene durchführen, das zeitgesteuerte Verwerfen von Daten steuern und Sicherheitsoperationen durchführen (z. B., Chiffrierung, Dechiffrierung, Integritätsschutz, Integritätsüberprüfung usw.).
  • In mindestens einer Ausführungsform können die Hauptdienste und - funktionen einer RRC-Schicht 2210 die Übertragung von Systeminformationen (z. B. in Master-Information-Blocks (MIBs) oder System-Information-Blocks (SIBs), die sich auf eine Nicht-Zugangsschicht (non-access stratum - NAS) beziehen, die Übertragung von Systeminformationen, die sich auf eine Zugangsschicht (access stratum - AS) beziehen, Paging, Aufbau, Aufrechterhaltung und Abbau einer RRC-Verbindung zwischen einem UE und E-UTRAN (z. B., RRC-Verbindungsruf, RRC-Verbindungsaufbau, RRC-Verbindungsänderung und RRC-Verbindungsfreigabe), Aufbau, Konfiguration, Aufrechterhaltung und Freigabe von Punkt-zu-Punkt-Funkträgern, Sicherheitsfunktionen einschließlich Schlüsselverwaltung, Mobilität zwischen Funkzugangstechnologien (RAT) und Messkonfiguration für UE-Messberichte beinhalten. In mindestens einer Ausführungsform können die MIBs und SIBs ein oder mehrere Informationselemente (IEs) umfassen, die jeweils einzelne Datenfelder oder Datenstrukturen umfassen können.
  • In mindestens einer Ausführungsform können die UE 2002 und das RAN 2016 eine Uu-Schnittstelle (z. B. eine LTE-Uu-Schnittstelle) nutzen, um Steuerebenendaten über einen Protokollstapel auszutauschen, der die PHY-Schicht 2202, die MAC-Schicht 2204, die RLC-Schicht 2206, die PDCP-Schicht 2208 und die RRC-Schicht 2210 umfasst.
  • In mindestens einer Ausführungsform bilden Nicht-Zugangsschicht(NAS)-Protokolle (NAS-Protokolle 2212) eine höchste Schicht einer Steuerungsebene zwischen UE 2002 und MME(s) 2028. In mindestens einer Ausführungsform unterstützen die NAS-Protokolle 2212 die Mobilität der UE 2002 und Sitzungsverwaltungsprozeduren, um eine IP-Konnektivität zwischen der UE 2002 und dem P-GW 2034 einzurichten und aufrechtzuerhalten.
  • In mindestens einer Ausführungsform kann die Si-Anwendungsprotokoll(S1-AP)-Schicht (Si-AP-Schicht 2222) Funktionen einer Si-Schnittstelle unterstützen und Elementarprozeduren (EPs) umfassen. In mindestens einer Ausführungsform ist eine EP eine Interaktionseinheit zwischen dem RAN 2016 und dem CN 2028. In mindestens einer Ausführungsform können S1-AP-Schichtdienste zwei Gruppen umfassen: UE-assoziierte Dienste und nicht UE-assoziierte Dienste. In mindestens einer Ausführungsform führen diese Dienste Funktionen durch, die Folgendes beinhalten, aber nicht beschränkt sind auf: E-UTRAN-Funkzugangsträger(E-UTRAN Radio Access Bearer - E-RAB)-Verwaltung, UE-Leistungsfähigkeitsanzeige, Mobilität, NAS-Signalisierungstransport, RAN-Informationsverwaltung (RAN Information Management - RIM) und Konfigurationsübertragung.
  • In mindestens einer Ausführungsform kann die Stream Control-Transmission-Protocol(SCTP)-Schicht (alternativ als Stream-Control-Transmission-Protocol/Internet-Protocol(SCTP/IP)-Schicht bezeichnet) (SCTP-Schicht 2220) eine zuverlässige Zustellung von Signalisierungsnachrichten zwischen RAN 2016 und MME(s) 2028 sicherstellen, die teilweise auf einem IP-Protokoll basiert, das von einer IP-Schicht 2218 unterstützt wird. In mindestens einer Ausführungsform können sich die L2-Schicht 2216 und eine L1-Schicht 2214 auf Kommunikationsverbindungen (z. B. drahtgebunden oder drahtlos) beziehen, die durch einen RAN-Knoten und eine MME verwendet werden, um Informationen auszutauschen.
  • In mindestens einer Ausführungsform können das RAN 2016 und die MME 2028 eine S1-MME-Schnittstelle nutzen, um Steuerebenendaten über einen Protokollstapel auszutauschen, der eine L1-Schicht 2214, eine L2-Schicht 2216, eine IP-Schicht 2218, eine SCTP-Schicht 2220 und eine Si-AP-Schicht 2222 umfasst.
  • 23 ist eine Veranschaulichung eines Protokollstapels auf Benutzerebene gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird eine Benutzerebene 2300 als Kommunikationsprotokollstapel zwischen einer UE 2002, dem RAN 2016, dem S-GW 2030 und dem P-GW 2034 gezeigt. In mindestens einer Ausführungsform kann die Benutzerebene 2300 dieselben Protokollschichten wie die Steuerebene 2200 nutzen. In mindestens einer Ausführungsform können die UE 2002 und das RAN 2016 eine Uu-Schnittstelle (z. B. eine LTE-Uu-Schnittstelle) nutzen, um Benutzerebenendaten über einen Protokollstapel auszutauschen, der die PHY-Schicht 2202, die MAC-Schicht 2204, die RLC-Schicht 2206 und die PDCP-Schicht 2208 umfasst.
  • In mindestens einer Ausführungsform kann die GPRS(General Packet Radio Service)-Tunnelprotokoll für eine Benutzerebenen(Tunneling Protocol for a user plane, GTP-U)-Schicht (GTP-U-Schicht 2302) zur Übertragung von Benutzerdaten innerhalb eines GPRS-Kernnetzwerks und zwischen einem Funkzugangsnetzwerk und einem Kernnetzwerk verwendet werden. In mindestens einer Ausführungsform können die transportierten Benutzerdaten Pakete in einem beliebigen der Formate IPv4, IPv6 oder PPP sein. In mindestens einer Ausführungsform kann die UDP- und IP-Sicherheits-(UDP/IP-)Schicht (UDP/IP-Schicht 2302) Prüfsummen für die Datenintegrität, Portnummern zum Adressieren unterschiedlicher Funktionen an einer Quelle und einem Ziel und Verschlüsselung und Authentifizierung für ausgewählte Datenflüsse bereitstellen. In mindestens einer Ausführungsform können das RAN 2016 und das S-GW 2030 eine S1-U-Schnittstelle nutzen, um Benutzerebenendaten über einen Protokollstapel auszutauschen, der die L1-Schicht 2214, die L2-Schicht 2216, die UDP/IP-Schicht 2302 und die GTP-U-Schicht 2302 umfasst. In mindestens einer Ausführungsform können das S-GW 2030 und das P-GW 2034 eine S5/S8a-Schnittstelle nutzen, um Benutzerebenendaten über einen Protokollstapel auszutauschen, der die L1-Schicht 2214, die L2-Schicht 2216, die UDP/IP-Schicht 2302 und die GTP-U-Schicht 2302 umfasst. In mindestens einer Ausführungsform, wie vorstehend unter Bezugnahme auf die 22 erörtert, unterstützen die NAS-Protokolle eine Mobilität der UE 2002 und Sitzungsverwaltungsprozeduren, um eine IP-Konnektivität zwischen der UE 2002 und dem P-GW 2034 einzurichten und aufrechtzuerhalten.
  • 24 veranschaulicht Komponenten 2400 eines Kernnetzwerks gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können die Komponenten des CN 2038 in einem physischen Knoten oder separaten physischen Knoten implementiert sein, einschließlich Komponenten zum Lesen und Ausführen von Anweisungen von einem maschinenlesbaren oder computerlesbaren Medium (z. B. einem nichttransitorischen maschinenlesbaren Speichermedium). In mindestens einer Ausführungsform wird eine Netzwerkfunktionsvirtualisierung (Network Functions Virtualization - NFV) genutzt, um eine oder alle der vorstehend beschriebenen Netzwerkknotenfunktionen über ausführbare Anweisungen, die in einem oder mehreren computerlesbaren Speichermedien gespeichert sind (nachstehend ausführlicher beschrieben), zu virtualisieren. In mindestens einer Ausführungsform kann eine logische Instanziierung des CN 2038 als ein Netzwerk-Slice 2402 bezeichnet werden (z. B. beinhaltet das Netzwerk-Slice 2402 der Darstellung nach den HSS 2032, die MME(s) 2028 und das S-GW 2030). In mindestens einer Ausführungsform kann eine logische Instanziierung eines Abschnitts des CN 2038 als ein Netzwerk-Sub-Slice 2404 bezeichnet werden (z. B. beinhaltet das Netzwerk-Sub-Slice 2404 der Darstellung nach das P-GW 2034 und die PCRF 2036).
  • In mindestens einer Ausführungsform können NFV-Architekturen und - Infrastrukturen verwendet werden, um eine oder mehrere Netzwerkfunktionen, die alternativ von proprietärer Hardware ausgeführt werden, auf physischen Ressourcen zu virtualisieren, die eine Kombination aus Industriestandard-Serverhardware, Speicherhardware oder Switches umfassen. In mindestens einer Ausführungsform können NFV-Systeme verwendet werden, um virtuelle oder rekonfigurierbare Implementierungen einer oder mehrerer EPC-Komponenten/Funktionen auszuführen.
  • 25 ist ein Blockdiagramm, das Komponenten eines Systems 2500 zum Unterstützen von Netzwerkfunktionsvirtualisierung (NFV) gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform ist das System 2500 so veranschaulicht, dass es einen virtualisierten Infrastrukturmanager (als VIM 2502 gezeigt), eine Netzwerkfunktionsvirtualisierungsinfrastruktur (als NFVI 2504 gezeigt), einen VNF-Manager (als VNFM 2506 gezeigt), virtualisierte Netzwerkfunktionen (als VNF 2508), einen Elementmanager (als EM 2510 gezeigt), einen NFV-Orchestrator (als NFVO 2512 gezeigt) und einen Netzwerkmanager (als NM 2514 gezeigt) beinhaltet.
  • In mindestens einer Ausführungsform verwaltet der VIM 2502 Ressourcen der NFVI 2504. In mindestens einer Ausführungsform kann die NFVI 2504 physische oder virtuelle Ressourcen und Anwendungen (einschließlich Hypervisoren) beinhalten, die verwendet werden, um das System 2500 auszuführen. In mindestens einer Ausführungsform kann der VIM 2502 einen Lebenszyklus von virtuellen Ressourcen mit der NFVI 2504 verwalten (z. B. Erstellung, Pflege und Abbau von virtuellen Maschinen (VM), die mit einer oder mehreren physischen Ressourcen verbunden sind), VM-Instanzen verfolgen, Leistungsfähigkeit verfolgen, Fehler und Sicherheit von VM-Instanzen und verbundene physischen Ressourcen, und VM-Instanzen und verbundene physischen Ressourcen für andere Verwaltungssysteme offenlegen.
  • In mindestens einer Ausführungsform kann der VNFM 2506 die VNF 2508 verwalten. In mindestens einer Ausführungsform kann die VNF 2508 verwendet werden, um EPC-Komponenten/-Funktionen auszuführen. In mindestens einer Ausführungsform kann der VNFM 2506 einen Lebenszyklus der VNF 2508 verwalten und Leistungsfähigkeit, Fehler und Sicherheit von virtuellen Aspekten der VNF 2508 verfolgen. In mindestens einer Ausführungsform kann der EM 2510 Leistungsfähigkeit, Fehler und Sicherheit von funktionalen Aspekten der VNF 2508 verfolgen. In mindestens einer Ausführungsform können Verfolgungsdaten des VNFM 2506 und des EM 2510 in mindestens einer Ausführungsform Daten einer Leistungsfähigkeitsmessung (performance measurement - PM) umfassen, die durch den VIM 2502 oder die NFVI 2504 verwendet werden. In mindestens einer Ausführungsform können sowohl der VNFM 2506 als auch der EM 2510 eine Menge der VNF des Systems 2500 nach oben/unten skalieren.
  • In mindestens einer Ausführungsform kann die NFVO 2512 Ressourcen des NFVI 2504 koordinieren, autorisieren, freigeben und in Anspruch nehmen, um einen angeforderten Dienst bereitzustellen (z. B. um eine EPC-Funktion, -Komponente oder -Slice auszuführen). In mindestens einer Ausführungsform kann der NM 2514 ein Paket von Endbenutzerfunktionen mit Verantwortung für die Verwaltung eines Netzwerks bereitstellen, das Netzwerkelemente mit VNF, nicht virtualisierte Netzwerkfunktionen oder beides beinhalten kann (die Verwaltung der VNF kann über den EM 2510 erfolgen).
  • COMPUTERBASIERTE SYSTEME
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte computerbasierte Systeme dar, die verwendet werden können, um mindestens eine Ausführungsform zu implementieren.
  • 26 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet ein System 2600 einen oder mehrere Prozessoren 2602 und einen oder mehrere Grafikprozessoren 2608 und kann ein Einzelprozessor-Desktop-System, ein Mehrprozessor-Workstation-System oder ein Server-System sein, dass eine große Anzahl von Prozessoren 2602 oder Prozessorkernen 2607 aufweist. In mindestens einer Ausführungsform ist das System 2600 eine Verarbeitungsplattform, die innerhalb einer integrierten Schaltung als System auf einem Chip (SoC) zur Verwendung in mobilen, tragbaren oder eingebetteten Vorrichtungen integriert ist. In mindestens einer Ausführungsform beinhalten ein oder mehrere Grafikprozessoren 2608 einen oder mehrere Grafikkerne.
  • In mindestens einer Ausführungsform kann das System 2600 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 2600 ein Mobiltelefon, ein Smartphone, eine Tablet-Rechenvorrichtung oder eine mobile Internet-Vorrichtung. In mindestens einer Ausführungsform kann das Verarbeitungssystem 2600 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 2600 eine Fernseh- oder Set-Top-Box-Vorrichtung, die einen oder mehrere Prozessoren 2602 und eine grafische Schnittstelle aufweist, die durch einen oder mehrere Grafikprozessoren 2608 erzeugt wird.
  • In mindestens einer Ausführungsform beinhalten ein oder mehrere Prozessoren 2602 jeweils einen oder mehrere Prozessorkerne 2607 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 2607 so konfiguriert, dass er eine spezifische Anweisungssequenz 2609 verarbeitet. In mindestens einer Ausführungsform kann die Anweisungssequenz 2609 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 2607 jeweils eine andere Anweisungssequenz 2609 verarbeiten, die Anweisungen beinhalten kann, um die Emulation anderer Anweisungssequenzen zu erleichtern. In mindestens einer Ausführungsform kann der Prozessorkern 2607 auch andere Verarbeitungsvorrichtungen beinhalten, wie etwa einen digitalen Signalprozessor (DSP).
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 2602 einen Cache-Speicher 2604. In mindestens einer Ausführungsform kann der Prozessor 2602 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 2602 gemeinsam genutzt. In mindestens einer Ausführungsform verwendet der Prozessor 2602 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 2607 gemeinsam genutzt werden kann. In mindestens einer Ausführungsform ist zusätzlich eine Registerdatei 2606 im Prozessor 2602 beinhaltet, die verschiedene Arten von Registern zur Speicherung unterschiedlicher Datentypen (z. B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Anweisungszeigerregister) beinhalten kann. In mindestens einer Ausführungsform kann die Registerbank 2606 Allzweckregister oder andere Register beinhalten.
  • In mindestens einer Ausführungsform sind ein oder mehrere Prozessor(en) 2602 mit einem oder mehreren Schnittstellenbus(sen) 2610 gekoppelt, um Kommunikationssignale, wie etwa Adress-, Daten- oder Steuersignale, zwischen dem Prozessor 2602 und anderen Komponenten in dem System 2600 zu übertragen. In mindestens einer Ausführungsform kann der Schnittstellenbus 2610 ein Prozessorbus sein, wie etwa eine Version eines Mediendirektschnittstellen-(Direct Media Interface - DMI-)Busses. In mindestens einer Ausführungsform ist der Schnittstellenbus 2610 nicht auf einen DMI-Bus beschränkt und kann einen oder mehrere Peripheriegerätekomponentenverbindungsbusse (z. B. PCI, PCI Express), Speicherbusse oder andere Arten von Schnittstellenbussen beinhalten. In mindestens einer Ausführungsform beinhalten die Prozessor(en) 2602 eine integrierte Speichersteuerung 2616 und einen Plattformsteuerungs-Hub 2630. In mindestens einer Ausführungsform ermöglicht die Speichersteuerung 2616 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 2600, während der Plattformsteuerungs-Hub (platform controller hub - PCH) 2630 Verbindungen mit E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt.
  • In mindestens einer Ausführungsform kann eine Speichervorrichtung 2620 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 2620 als Systemspeicher für das System 2600 arbeiten, um Daten 2622 und Anweisungen 2621 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 2602 eine Anwendung oder einen Prozess ausführen. In mindestens einer Ausführungsform ist die Speichersteuerung 2616 zudem an einen optionalen externen Grafikprozessor 2612 gekoppelt, der mit einem oder mehreren Grafikprozessoren 2608 in den Prozessoren 2602 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einer Ausführungsform kann eine Anzeigevorrichtung 2611 mit den Prozessor(en) 2602 verbunden sein. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 2611 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 2611 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 2630, dass Peripheriegeräte mit der Speichervorrichtung 2620 und dem Prozessor 2602 über einen Hochgeschwindigkeits-E/A-Bus verbunden werden. In mindestens einer Ausführungsform beinhalten die E/A-Peripheriegeräte eine Audiosteuerung 2646, eine Netzsteuerung 2634, eine Firmware-Schnittstelle 2628, einen drahtlosen Sendeempfänger 2626, Berührungssensoren 2625 und eine Datenspeichervorrichtung 2624 (z. B. Festplattenlaufwerk, Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeichervorrichtung 2624 ü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 2625 Touchscreen-Sensoren, Drucksensoren oder Fingerabdrucksensoren beinhalten. In mindestens einer Ausführungsform kann der drahtlose Sendeempfänger 2626 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 2628 die Kommunikation mit der System-Firmware und kann zum Beispiel eine Unified Extensible Firmware Interface (UEFI) sein. In mindestens einer Ausführungsform kann die Netzwerksteuerung 2634 eine Netzwerkverbindung zu einem drahtgebundenen Netzwerk ermöglichen. In mindestens einer Ausführungsform ist eine Hochleistungsnetzwerksteuerung (nicht gezeigt) mit dem Schnittstellenbus 2610 gekoppelt. In mindestens einer Ausführungsform ist die Audiosteuerung 2646 eine Mehrkanal-High-Definition-Audiosteuerung. In mindestens einer Ausführungsform beinhaltet das System 2600 eine optionale ältere E/A-Steuerung 2640 zum Koppeln von älteren Vorrichtungen (z. B. Personal System 2 (PS/2)) an das System 2600. In mindestens einer Ausführungsform kann der Plattformsteuerungs-Hub 2630 auch mit einer oder mehreren Universal-Serial-Bus-(USB-)Steuerungen 2642 verbunden sein, die mit Eingabevorrichtungen, wie etwa Kombinationen aus Tastatur und Maus 2643, einer Kamera 2644 oder anderen USB-Eingabevorrichtungen, verbunden sind.
  • In mindestens einer Ausführungsform kann eine Instanz der Speichersteuerung 2616 und des Plattformsteuerungs-Hubs 2630 in einen diskreten externen Grafikprozessor, wie etwa den externen Grafikprozessor 2612, integriert sein. In mindestens einer Ausführungsform können der Plattformsteuerungs-Hub 2630 und/oder die Speichersteuerung 2616 extern zu einem oder mehreren Prozessor(en) 2602 sein. Zum Beispiel kann das System 2600 in mindestens einer Ausführungsform eine externe Speichersteuerung 2616 und einen Plattformsteuerungs-Hub 2630 beinhalten, der als Speichersteuerungs-Hub und Peripheriesteuerungs-Hub innerhalb eines Systemchipsatzes konfiguriert sein kann, der mit den Prozessor(en) 2602 in Kommunikation steht.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte oder die gesamte Inferenz- und/oder Trainingslogik 1815 in den Grafikprozessor 2608 integriert 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 einer anderen als der in 18A oder 18B 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 2608 konfigurieren, um eine(n) oder mehrere hierin beschriebene Algorithmen des maschinellen Lernens, neuronale Netzarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • 27 ist ein Blockdiagramm, das ein beispielhaftes Computersystem veranschaulicht, das ein System mit miteinander verbundenen Vorrichtungen und Komponenten, ein System-on-a-Chip (SOC) oder eine Kombination davon sein kann, das gemäß mindestens einer Ausführungsform einen Prozessor aufweist, der Ausführungseinheiten zur Ausführung einer Anweisung beinhaltet. In mindestens einer Ausführungsform kann das Computersystem 2700 ohne Einschränkung eine Komponente, wie etwa einen Prozessor 2702, beinhalten, um Ausführungseinheiten einschließlich Logik zur Durchführung von Algorithmen zur Verarbeitung von Daten gemäß der vorliegenden Offenbarung einzusetzen, wie etwa bei der hier beschriebenen Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 2700 Prozessoren beinhalten, wie z. B. die PENTIUMO-Prozessorfamilie, Xeon™-, Itanium®-, XScale™- und/oder StrongARM™-, Intel® Core™- oder Intel® Nervana™-Mikroprozessoren, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technische Workstations, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 2700 eine Version des Betriebssystems WINDOWS ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (z. B. UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können.
  • Ausführungsformen können auch bei anderen Vorrichtungen wie Handheld-Vorrichtungen und eingebetteten Anwendungen verwendet werden. Einige Beispiele für tragbare Vorrichtungen beinhalten Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (personal digital assistants - „PDAs“) und tragbare PCs. 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, Wide-Area-Network-Switches („WAN“) oder jedes andere System beinhalten, das eine oder mehrere Anweisungen gemäß mindestens einer Ausführungsform ausführen kann.
  • In mindestens einer Ausführungsform kann das Computersystem 2700 ohne Einschränkung einen Prozessor 2702 beinhalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 2708 beinhalten kann, um Trainieren und/oder Inferenzieren eines maschinellen Lernmodells gemäß den in dieser Schrift beschriebenen Techniken durchzuführen. In mindestens einer Ausführungsform ist das Computersystem 2700 ein Einzelprozessor-Desktop- oder-Serversystem, aber in einer anderen Ausführungsform kann das Computersystem 2700 ein Multiprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 2702 ohne Einschränkung einen CISC-Mikroprozessor (Complex Instruction Set Computer), einen RISC-Mikroprozessor (Reduced Instruction Set Computing), einen VLIW-Mikroprozessor (Very Long Instruction Word), einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder eine beliebige andere Vorrichtung, wie z. B. einen digitalen Signalprozessor, beinhalten. In mindestens einer Ausführungsform kann der Prozessor 2702 an einen Prozessorbus 2710 gekoppelt sein, der Datensignale zwischen dem Prozessor 2702 und anderen Komponenten im Computersystem 2700 übertragen kann.
  • In mindestens einer Ausführungsform kann der Prozessor 2702 ohne Einschränkung einen internen Level-1(„L1“)-Cache-Speicher („Cache“) 2704 beinhalten. In mindestens einer Ausführungsform kann der Prozessor 2702 einen einzelnen internen Cache oder mehrere Ebenen von internem Cache aufweisen. In mindestens einer Ausführungsform kann sich der Cache-Speicher extern zu dem Prozessor 2702 befinden. Andere Ausführungsformen können auch eine Kombination von sowohl internen als auch externen Caches beinhalten, abhängig von der jeweiligen Implementierung und den Bedürfnissen. In mindestens einer Ausführungsform kann die Registerdatei 2706 verschiedene Datentypen in verschiedenen Registern speichern, einschließlich, ohne Einschränkung, Ganzzahlregister, Gleitkommaregister, Statusregister und Anweisungszeigerregister.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 2708, die ohne Einschränkung eine Logik zum Durchführen von Ganzzahl- und Gleitkommaoperationen beinhaltet, ebenfalls im Prozessor 2702. In mindestens einer Ausführungsform kann der Prozessor 2702 auch Festwertspeicher (read only memory - „ROM“) für Mikrocode („ucode“) beinhalten, der Mikrocode für bestimmte Makrobefehle speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 2708 Logik zum Handhaben eines gepackten Anweisungssatzes 2709 beinhalten. In mindestens einer Ausführungsform können durch das Vorweisen eines gepackten Anweisungssatzes 2709 in einem Anweisungssatz eines Mehrzweckprozessors zusammen mit einer zugehörigen Schaltung zur Ausführung von Anweisungen die von vielen Multimedia-Anwendungen verwendeten Operationen unter Verwendung gepackter Daten in einem Mehrzweckprozessor 2702 durchgeführt werden. In mindestens einer Ausführungsform 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 2708 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 2700 ohne Einschränkung einen Speicher 2720 beinhalten. In mindestens einer Ausführungsform kann der Speicher 2720 eine dynamische Random-Access-Memory- („DRAM“) Einrichtung, statische Random-Access-Memory- („SRAM“) Vorrichtung, Flash-Speichereinrichtung oder eine andere Speichereinrichtung sein. In mindestens einer Ausführungsform kann der Speicher 2720 Anweisung(en) 2719 und/oder Daten 2721 speichern, die durch den Prozessor 2702 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Systemlogikchip an den Prozessorbus 2710 und den Speicher 2720 gekoppelt sein. In mindestens einer Ausführungsform kann ein Systemlogikchip ohne Einschränkung einen Speichersteuerungs-Hub („MCH“) 2716 beinhalten und kann der Prozessor 2702 mit dem MCH 2716 über den Prozessorbus 2710 kommunizieren. In mindestens einer Ausführungsform kann der MCH 2716 dem Speicher 2720 einen Speicherpfad 2718 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 2716 Datensignale zwischen dem Prozessor 2702, dem Speicher 2720 und anderen Komponenten im Computersystem 2700 leiten und Datensignale zwischen dem Prozessorbus 2710, dem Speicher 2720 und einer System-E/A-Schnittstelle 2722 überbrücken. In mindestens einer Ausführungsform kann ein Systemlogikchip einen Grafikanschluss zum Koppeln an eine Grafiksteuerung bereitstellen. In mindestens einer Ausführungsform kann der MCH 2716 über einen Speicherweg 2718 mit hoher Bandbreite an den Speicher 2720 gekoppelt sein und kann eine Grafik-/Videokarte 2712 über eine Zusammenschaltung eines beschleunigten Grafikanschlusses (Accelerated Graphics Port - „AGP“) 2714 an den MCH 2716 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 2700 die System-E/A-Schnittstelle 2722 als einen proprietären Hub-Schnittstellenbus verwenden, um den MCH 2716 mit dem E/A-Steuerungs-Hub (I/O controller hub - „ICH“) 2730 zu koppeln. In mindestens einer Ausführungsform kann der ICH 2730 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 2720, einem Chipsatz und dem Prozessor 2702 beinhalten. Beispiele können ohne Einschränkung eine Audiosteuerung 2729, einen Firmware-Hub („Flash-BIOS“) 2728, einen drahtlosen Sendeempfänger 2726, einen Datenspeicher 2724, eine ältere E/A-Steuerung 2723, die Benutzereingabe- und Tastaturschnittstellen 2725 enthält, einen seriellen Erweiterungsanschluss 2727, wie etwa einen Universal-Serial-Bus(„USB“)-Anschluss, und eine Netzwerksteuerung 2734 beinhalten. In mindestens einer Ausführungsform kann der Datenspeicher 2724 ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • In mindestens einer Ausführungsform veranschaulicht 27 ein System, das miteinander verbundene Hardware-Vorrichtungen oder „Chips“ beinhaltet, während in anderen Ausführungsformen 27 ein beispielhaftes SoC veranschaulichen kann. In mindestens einer Ausführungsform können die in 27 veranschaulichten Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Computersystems 2700 unter Verwendung von Compute-Express-Link (CXL)-Zusammenschaltungen verbunden.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 im System von 27 für Inferenz- oder Vorhersageoperationen verwendet werden, die mindestens teilweise auf Gewichtungsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netze, neuronalen Netzfunktionen und/oder -architekturen oder hier beschriebenen Anwendungsfällen für neuronale Netze berechnet werden.
  • 28 ist ein Blockdiagramm, das eine elektronische Vorrichtung 2800 zur Nutzung eines Prozessors 2810 gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform kann die elektronische Vorrichtung 2800 beispielsweise und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop-Computer, 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 2800 ohne Einschränkung den Prozessor 2810 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 2810 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 28 ein System, das miteinander verbundene Hardware-Vorrichtungen oder „Chips“ beinhaltet, während in anderen Ausführungsformen 28 ein beispielhaftes SoC veranschaulichen kann. In mindestens einer Ausführungsform können die in 28 veranschaulichten Vorrichtungen mit proprietären Verschaltungen, standardisierten Verschaltungen (z. B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten aus 28 unter Verwendung von Compute-Express-Link(CXL)-Zusammenschaltungen verbunden.
  • In mindestens einer Ausführungsform kann 28 beinhalten: eine Anzeige 2824, einen Berührungsbildschirm 2825, ein Touchpad 2830, eine Nahfeldkommunikationseinheit („NFC“) 2845, einen Sensor-Hub 2840, einen Wärmesensor 2846, einen Express-Chipsatz („EC“) 2835, ein Trusted-Platform-Modul („TPM“) 2838, BIOS-/Firmware-/Flash-Speicher („BIOS, FW Flash“) 2822, einen DSP 2860, ein Treiber 2820, wie etwa ein Festkörperlaufwerk (Solid State Disk - „SSD“) oder ein Festplattenlaufwerk (Hard Disk Drive -„HDD“), eine drahtlose lokale Netzwerkeinheit (Wireless Local Area Network - „WLAN“) 2850, eine Bluetooth-Einheit 2852, eine drahtlose Weitbereichsnetzwerkeinheit (Wireless Wide Area Network - „WWAN“) 2856, eine globales Positionsbestimmungssystem(GPS)-Einheit 2855, eine Kamera („USB 3.0-Kamera“) 2854, wie etwa eine USB 3.0-Kamera, und/oder eine Speichereinheit mit doppelter Datenrate bei niedriger Leistung (Low Power Double Data Rate - „LPDDR“) („LPDDR3“) 2815, die z. B. im LPDDR3-Standard implementiert ist. Diese Komponenten können jeweils auf eine beliebige geeignete Weise implementiert sein.
  • In mindestens einer Ausführungsform können andere Komponenten durch hierin beschriebene Komponenten kommunikativ an den Prozessor 2810 gekoppelt sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 2841, ein Umgebungslichtsensor (ambient light sensor - „ALS“) 2842, ein Kompass 2843 und ein Gyroskop 2844 kommunikativ an den Sensor-Hub 2840 gekoppelt sein. In mindestens einer Ausführungsform können ein Wärmesensor 2839, ein Lüfter 2837, eine Tastatur 2836 und ein Touchpad 2830 kommunikativ an den EC 2835 gekoppelt sein. In mindestens einer Ausführungsform können ein Lautsprecher 2863, Kopfhörer 2864 und ein Mikrofon („Mikro“) 2865 kommunikativ an eine Audioeinheit („Audiocodec und Klasse-D-Verst.“) 2862 gekoppelt sein, die wiederum kommunikativ an den DSP 2860 gekoppelt sein kann. In mindestens einer Ausführungsform kann die Audioeinheit 2862 beispielsweise und ohne Einschränkung einen Audiocodierer/-decoder („Codec“) und einen Verstärker der Klasse D beinhalten. In mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 2857 kommunikativ an die WWAN-Einheit 2856 gekoppelt sein. In mindestens einer Ausführungsform können Komponenten, wie etwa die WLAN-Einheit 2850 und die Bluetooth-Einheit 2852 sowie die WWAN-Einheit 2856, in einem Next-Generation-Form-Factor („NGFF“) implementiert sein.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 im System von 28 für Inferenz- oder Vorhersageoperationen verwendet werden, die mindestens teilweise auf Gewichtungsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netze, neuronalen Netzfunktionen und/oder -architekturen oder hier beschriebenen Anwendungsfällen für neuronale Netze berechnet werden.
  • 29 veranschaulicht beispielhafte integrierte Schaltungen und zugehörige Grafikprozessoren, die unter Verwendung eines oder mehrerer IP-Cores hergestellt werden können, gemäß verschiedenen hierin beschriebenen Ausführungsformen. Zusätzlich zu den veranschaulichten Schaltungen können in mindestens einer Ausführungsform weitere Logik und Schaltungen beinhaltet sein, einschließlich zusätzlicher Grafikprozessoren/-kerne, Controller für periphere Schnittstellen oder Allzweckprozessorkerne.
  • 29 ist ein Blockdiagramm, das eine beispielhafte integrierte Schaltung 2900 als System auf einem Chip veranschaulicht, die unter Verwendung eines oder mehrerer IP-Kerne gemäß mindestens einer Ausführungsform hergestellt werden kann. In mindestens einer Ausführungsform beinhaltet die integrierte Schaltung 2900 einen oder mehrere Anwendungsprozessor(en) 2905 (z. B. CPUs), mindestens einen Grafikprozessor 2910 und sie kann zusätzlich einen Bildprozessor 2915 und/oder einen Videoprozessor 2920 beinhalten, von denen jeder beliebige ein modularer IP-Kern sein kann. In mindestens einer Ausführungsform beinhaltet die integrierte Schaltung 2900 Peripherie- oder Buslogik, die eine USB-Steuerung 2925, eine UART-Steuerung 2930, eine SPI/SDIO-Steuerung 2935 und eine l22S/l22C-Steuerung 2940 beinhaltet. In mindestens einer Ausführungsform kann die integrierte Schaltung 2900 eine Anzeigevorrichtung 2945 beinhalten, die an eine oder mehrere von einer High-Definition-Multimedia-Interface(HDMI)-Steuerung 2950 und einer Mobile-Industry-Processor-Interface(MIPI)-Anzeigeschnittstelle 2955 gekoppelt ist. In mindestens einer Ausführungsform kann die Speicherung durch ein Flash-Speicherteilsystem 2960 bereitgestellt sein, das Flash-Speicher und eine Flash-Speichersteuerung beinhaltet. In mindestens einer Ausführungsform kann eine Speicherschnittstelle über eine Speichersteuerung 2965 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 2970.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 in der integrierten Schaltung 2900 für Inferenz- oder Vorhersageoperationen mindestens teilweise basierend auf Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • 30 ist ein Blockdiagramm, das ein Rechensystem 3000 gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform beinhaltet das Rechensystem 3000 ein Verarbeitungsteilsystem 3001 mit einem oder mehreren Prozessor(en) 3002 und einem Systemspeicher 3004, die über einen Zusammenschaltungspfad kommunizieren, der einen Speicher-Hub 3005 beinhalten kann. In mindestens einer Ausführungsform kann der Speicher-Hub 3005 eine getrennte Komponente innerhalb einer Chipsatzkomponente sein oder kann in einen oder mehrere Prozessoren 3002 integriert sein. In mindestens einer Ausführungsform ist der Speicher-Hub 3005 über eine Kommunikationsverbindung 3006 mit einem E/A-Teilsystem 3011 gekoppelt. In mindestens einer Ausführungsform beinhaltet das E/A-Teilsystem 3011 einen E/A-Hub 3007, der es dem Rechensystem 3000 ermöglichen kann, Eingaben von einer oder mehreren Eingabevorrichtung(en) 3008 zu empfangen. In mindestens einer Ausführungsform kann der E/A-Hub 3007 es einer Anzeigesteuerung, die in einem oder mehreren Prozessor(en) 3002 beinhaltet sein kann, ermöglichen, einer oder mehreren Anzeigevorrichtung(en) 3010A Ausgaben bereitzustellen. In mindestens einer Ausführungsform können eine oder mehrere mit dem E/A-Hub 3007 gekoppelte Anzeigevorrichtung(en) 3010A eine lokale, interne oder eingebettete Anzeigevorrichtung beinhalten.
  • In mindestens einer Ausführungsform beinhaltet das Verarbeitungsteilsystem 3001 einen oder mehrere Parallelprozessor(en) 3012, die über einen Bus oder eine andere Kommunikationsverbindung 3013 an den Speicher-Hub 3005 gekoppelt sind. In mindestens einer Ausführungsform kann es sich bei der Kommunikationsverbindung 3013 um eine beliebige Anzahl von standardbasierten Kommunikationsverbindungstechnologien oder -protokollen handeln, wie z. B. PCI Express, ist aber nicht darauf beschränkt, oder um eine herstellerspezifische Kommunikationsschnittstelle oder Kommunikationsstruktur. In mindestens einer Ausführungsform bilden einige oder alle der parallelen Prozessoren 3012 ein rechnerisch fokussiertes Parallel- oder Vektorverarbeitungssystem, das eine große Anzahl von Verarbeitungskernen und/oder Verarbeitungsclustern beinhalten kann, wie z. B. einen MIC-Prozessor (Many Integrated Core). In mindestens einer Ausführungsform bilden einige oder alle Parallelprozessor(en) 3012 ein Grafikverarbeitungsteilsystem, das Pixel an eine oder mehrere Anzeigevorrichtung(en) 3010A ausgeben kann, die über den E/A-Hub 3007 gekoppelt sind. In mindestens einer Ausführungsform können die Parallelprozessor(en) 3012 zudem eine Anzeigesteuerung und eine Anzeigeschnittstelle (nicht gezeigt) beinhalten, um eine direkte Verbindung zu einer oder mehreren Anzeigevorrichtung(en) 3010B zu ermöglichen. In mindestens einer Ausführungsform beinhalten der/die Parallelprozessor(en) 3012 einen oder mehrere Kerne, wie etwa die hierin erörterten Grafikkerne 3500.
  • In mindestens einer Ausführungsform kann eine Systemspeichereinheit 3014 mit dem E/A-Hub 3007 verbunden sein, um einen Speichermechanismus für das Rechensystem 3000 bereitzustellen. In mindestens einer Ausführungsform kann ein E/A-Switch 3016 verwendet werden, um einen Schnittstellenmechanismus bereitzustellen, um Verbindungen zwischen dem E/A-Hub 3007 und anderen Komponenten zu ermöglichen, wie etwa einem Netzwerkadapter 3018 und/oder einem drahtlosen Netzwerkadapter 3019, die in eine Plattform integriert sein können, und verschiedenen anderen Vorrichtungen, die über eine oder mehrere Erweiterungsvorrichtung(en) 3020 hinzugefügt werden können. In mindestens einer Ausführungsform kann der Netzwerkadapter 3018 ein Ethernet-Adapter oder ein anderer drahtgebundener Netzwerkadapter sein. In mindestens einer Ausführungsform kann der drahtlose Netzwerkadapter 3019 eine oder mehrere Wi-Fi-, Bluetooth-, Near Field Communication (NFC)- oder andere Netzwerkvorrichtungen beinhalten, die ein oder mehrere drahtlose Funkgeräte beinhalten.
  • In mindestens einer Ausführungsform kann das Rechensystem 3000 andere, nicht explizit gezeigte Komponenten beinhalten, z. B. USB- oder andere Portverbindungen, optische Speicherlaufwerke, Videoaufnahmevorrichtungen und dergleichen, die ebenfalls mit dem E/A-Hub 3007 verbunden sein können. In mindestens einer Ausführungsform können Kommunikationspfade, die verschiedene Komponenten in 30 miteinander verbinden, unter Verwendung beliebiger geeigneter Protokolle implementiert sein, wie z. B. PCI (Peripheral Component Interconnect)-basierte Protokolle (z. B. PCI-Express) oder andere Bus- oder Punkt-zu-Punkt-Kommunikationsschnittstellen und/oder Protokolle, wie z. B. NV-Link High-Speed-Interconnect oder Interconnect-Protokolle.
  • In mindestens einer Ausführungsform enthalten der/die Parallelprozessor(en) 3012 Schaltungen, die für die Grafik- und Videoverarbeitung optimiert sind, z. B. Videoausgangsschaltungen, und bilden eine Grafikverarbeitungseinheit (GPU), z. B. beinhaltet der/die Parallelprozessor(en) 3012 einen Grafikkern 3500. In mindestens einer Ausführungsform enthalten ein oder mehrere Parallelprozessor(en) 3012 Schaltungen, die für die allgemeine Verarbeitung optimiert sind. In mindestens einer Ausführungsform können die Komponenten des Rechensystems 3000 in ein oder mehrere andere Systemelemente auf einer einzelnen integrierten Schaltung integriert sein. Zum Beispiel können in mindestens einer Ausführungsform der/die Parallelprozessor(en) 3012, der Speicher-Hub 3005, der/die Prozessor(en) 3002 und der E/A-Hub 3007 in eine integrierte Schaltung als System auf einem Chip (SoC) integriert sein. In mindestens einer Ausführungsform können die Komponenten des Rechensystems 3000 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 Rechensystems 3000 in ein Multi-Chip-Modul (MCM) integriert sein, das mit anderen Multi-Chip-Modulen zu einem modularen Rechensystem verbunden sein kann.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 in dem System aus FIG. 3000 für Inferenz- oder Vorhersageoperationen mindestens teilweise basierend auf Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • VERARBEITUNGSSYSTEME
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte Verarbeitungssysteme dar, die verwendet werden können, um mindestens eine Ausführungsform zu implementieren.
  • 31 veranschaulicht eine beschleunigte Verarbeitungseinheit (accelerated processing unit - „APU“) 3100 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird die APU 3100 von der AMD Corporation, Santa Clara, Kalifornien, entwickelt. In mindestens einer Ausführungsform kann die APU 3100 so konfiguriert werden, dass sie ein Anwendungsprogramm, z. B. ein CUDA-Programm, ausführt. In mindestens einer Ausführungsform beinhaltet die APU 3100 ohne Einschränkung einen Kernkomplex 3110, einen Grafikkomplex 3140, eine Struktur 3160, E/A-Schnittstellen 3170, Speichersteuerungen 3180, eine Anzeigesteuerung 3192 und eine Multimedia-Engine 3194. In mindestens einer Ausführungsform kann die APU 3100 ohne Einschränkung eine beliebige Anzahl von Kernkomplexen 3110, eine beliebige Anzahl von Grafikkomplexen 3150, eine beliebige Anzahl von Anzeigesteuerungen 3192 und eine beliebige Anzahl von Multimedia-Engines 3194 in einer beliebigen Kombination beinhalten. Zu Erläuterungszwecken werden hierin mehrere Instanzen von gleichen Objekten mit Bezugszeichen bezeichnet, die ein Objekt identifizieren, und in Klammern gesetzte Nummern identifizieren eine Instanz, wo dies erforderlich ist.
  • In mindestens einer Ausführungsform ist der Kernkomplex 3110 eine CPU, ist der Grafikkomplex 3140 eine GPU und ist die APU 3100 eine Verarbeitungseinheit, die ohne Einschränkung 3110 und 3140 auf einem einzelnen Chip integriert. In mindestens einer Ausführungsform können dem Kernkomplex 3110 einige Tasks zugewiesen werden und können dem Grafikkomplex 3140 andere Tasks zugewiesen werden. In mindestens einer Ausführungsform ist der Kernkomplex 3110 konfiguriert, um mit der APU 3100 verbundene Hauptsteuersoftware, wie etwa ein Betriebssystem, auszuführen. In mindestens einer Ausführungsform ist der Kernkomplex 3110 ein Masterprozessor der APU 3100, der Operationen anderer Prozessoren steuert und koordiniert. In mindestens einer Ausführungsform gibt der Kernkomplex 3110 Befehle aus, die eine Operation des Grafikkomplexes 3140 steuern. In mindestens einer Ausführungsform kann der Kernkomplex 3110 konfiguriert sein, um vom Host ausführbaren Code, der vom CUDA-Quellcode abgeleitet ist, auszuführen, und der Grafikkomplex 3140 kann konfiguriert sein, um von der Vorrichtung ausführbaren Code, der vom CUDA-Quellcode abgeleitet ist, auszuführen.
  • In mindestens einer Ausführungsform beinhaltet der Kernkomplex 3110 ohne Einschränkung Kerne 3120(1)-3120(4) und einen L3-Cache 3130. In mindestens einer Ausführungsform kann der Kernkomplex 3110 ohne Einschränkung eine beliebige Anzahl von Kernen 3120 und eine beliebige Anzahl und Art von Caches in beliebiger Kombination beinhalten. In mindestens einer Ausführungsform sind die Kerne 3120 konfiguriert, um Anweisungen einer konkreten Anweisungssatzarchitektur (instruction set architecture - „ISA“) auszuführen. In mindestens einer Ausführungsform ist jeder Kern 3120 ein CPU-Kern.
  • In mindestens einer Ausführungsform beinhaltet jeder Kern 3120, ohne Einschränkung, eine Abruf-/Decodiereinheit 3122, eine Ganzzahl-Ausführungs-Engine 3124, eine Gleitkomma-Ausführungs-Engine 3126 und einen L2-Cache 3128. In mindestens einer Ausführungsform ruft die Abruf-/Decodiereinheit 3122 Anweisungen ab, decodiert solche Anweisungen, erzeugt Mikrooperationen und sendet separate Mikroanweisungen an die Ganzzahl-Ausführungs-Engine 3124 und die Gleitkomma-Ausführungs-Engine 3126 ab. In mindestens einer Ausführungsform kann die Abruf-/Decodiereinheit 3122 gleichzeitig eine Mikroanweisung an die Ganzzahl-Ausführungs-Engine 3124 und eine weitere Mikroanweisung an die Gleitkomma-Ausführungs-Engine 3126 absenden. In mindestens einer Ausführungsform führt die Ganzzahl-Ausführungs-Engine 3124 ohne Einschränkung Ganzzahl- und Speicheroperationen aus. In mindestens einer Ausführungsform führt die Gleitkomma-Engine 3126 ohne Einschränkung Gleitkomma- und Vektoroperationen aus. In mindestens einer Ausführungsform sendet die Abruf-/Decodiereinheit 3122 Mikroanweisungen an eine einzelne Ausführungs-Engine aus, die sowohl die Ganzzahl-Ausführungs-Engine 3124 als auch die Gleitkomma-Ausführungs-Engine 3126 ersetzt.
  • In mindestens einer Ausführungsform kann jeder Kern 3120(i), wobei i eine ganze Zahl ist, die eine bestimmte Instanz des Kerns 3120 darstellt, auf den L2-Cache 3128(i) zugreifen, der zum Kern 3120(i) gehört. In mindestens einer Ausführungsform ist jeder im Kernkomplex 3110(j), wobei j eine ganze Zahl ist, die eine konkrete Instanz des Kernkomplexes 3110 darstellt, beinhaltete Kern 3120 mit anderen Kernen 3120, die im Kernkomplex 3110(j) beinhaltet sind, über den L3-Cache 3130(j), der im Kernkomplex 3110(j) beinhaltet ist, verbunden. In mindestens einer Ausführungsform können die im Kernkomplex 3110(j), wobei j eine ganze Zahl ist, die eine konkrete Instanz des Kernkomplexes 3110 darstellt, beinhalteten Kerne 3120 auf den gesamten L3-Cache 3130(j), der im Kernkomplex 3110(j) beinhaltet ist, zugreifen. In mindestens einer Ausführungsform kann der L3-Cache 3130 ohne Einschränkung eine beliebige Anzahl von Slices beinhalten.
  • In mindestens einer Ausführungsform kann der Grafikkomplex 3140 so konfiguriert werden, dass er Rechenoperationen hochgradig parallel ausführt. In mindestens einer Ausführungsform ist der Grafikkomplex 3140 konfiguriert, um Grafikpipelineoperationen auszuführen, wie beispielsweise Zeichenbefehle, Pixeloperationen, geometrische Berechnungen und andere Operationen, die dem Rendern eines Bildes auf einer Anzeige zugeordnet sind. In mindestens einer Ausführungsform ist der Grafikkomplex 3140 konfiguriert, um Operationen auszuführen, die sich nicht auf Grafiken beziehen. In mindestens einer Ausführungsform ist der Grafikkomplex 3140 konfiguriert, um sowohl Operationen, die sich auf Grafiken beziehen, als auch Operationen, die sich nicht auf Grafiken beziehen, auszuführen.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkomplex 3140, ohne Einschränkung, eine beliebige Anzahl von Recheneinheiten 3150 und einen L2-Cache 3142. In mindestens einer Ausführungsform nutzen die Recheneinheiten 3150 den L2-Cache 3142 gemeinsam. In mindestens einer Ausführungsform ist der L2-Cache 3142 partitioniert. In mindestens einer Ausführungsform beinhaltet der Grafikkomplex 3140 ohne Einschränkung eine beliebige Anzahl von Recheneinheiten 3150 und eine beliebige Anzahl (einschließlich null) und Art von Caches. In mindestens einer Ausführungsform beinhaltet der Grafikkomplex 3140 ohne Einschränkung eine beliebige Menge an dedizierter Grafikhardware.
  • In mindestens einer Ausführungsform beinhaltet jede Recheneinheit 3150 ohne Einschränkung eine beliebige Anzahl von SIMD-Einheiten 3152 und einen gemeinsam genutzten Speicher 3154. In mindestens einer Ausführungsform implementiert jede SIMD-Einheit 3152 eine SIMD-Architektur und ist konfiguriert, um Operationen parallel durchzuführen. In mindestens einer Ausführungsform kann jede Recheneinheit 3150 eine beliebige Anzahl von Thread-Blöcken ausführen, aber jeder Thread-Block wird auf einer einzelnen Recheneinheit 3150 ausgeführt. In mindestens einer Ausführungsform beinhaltet ein Thread-Block ohne Einschränkung eine beliebige Anzahl von Ausführungs-Threads. In mindestens einer Ausführungsform ist eine Arbeitsgruppe ein Thread-Block. In mindestens einer Ausführungsform führt jede SIMD-Einheit 3152 einen anderen Warp aus. In mindestens einer Ausführungsform ist ein Warp eine Gruppe von Threads (z. B. 16 Threads), wobei jeder Thread in einem Warp zu einem einzelnen Thread-Block gehört und konfiguriert ist, um einen anderen Datensatz auf Grundlage von einem einzelnen Satz von Anweisungen zu verarbeiten. In mindestens einer Ausführungsform kann Prädikation verwendet werden, um einen oder mehrere Threads in einem Warp zu deaktivieren. In mindestens einer Ausführungsform ist ein Pfad ein Thread. In mindestens einer Ausführungsform ist ein Arbeitselement ein Thread. In mindestens einer Ausführungsform ist eine Wellenfront ein Warp. In mindestens einer Ausführungsform können sich verschiedene Wellenfronten in einem Thread-Block miteinander synchronisieren und über den gemeinsam genutzten Speicher 3154 kommunizieren.
  • In mindestens einer Ausführungsform ist die Struktur 3160 eine Systemverbindung, die die Daten- und Steuerübertragungen zwischen dem Kernkomplex 3110, dem Grafikkomplex 3140, den E/A-Schnittstellen 3170, den Speicher-Steuerungen 3180, der Anzeige-Steuerung 3192 und der Multimedia-Engine 3194 ermöglicht. In mindestens einer Ausführungsform kann die APU 3100 ohne Einschränkung eine beliebige Menge und Art von Systemzusammenschaltung zusätzlich zu oder anstelle der Struktur 3160 beinhalten, die Daten- und Steuerübertragungen über eine beliebige Anzahl und Art von direkt oder indirekt verbundenen Komponenten ermöglicht, die sich innerhalb oder außerhalb der APU 3100 befinden können. In mindestens einer Ausführungsform repräsentieren die E/A-Schnittstellen 3170 eine beliebige Anzahl und Art von E/A-Schnittstellen (z. B. PCI, PCI-Extended („PCI-X“), PCIe, Gigabit-Ethernet („GBE“), USB usw.). In mindestens einer Ausführungsform sind verschiedene Arten von Peripheriegeräten mit E/A-Schnittstellen 3170 gekoppelt. In mindestens einer Ausführungsform können Peripheriegeräte, die mit den E/A-Schnittstellen 3170 gekoppelt sind, ohne Einschränkung Tastaturen, Mäuse, Drucker, Scanner, Joysticks oder andere Arten von Spielesteuerungen, Medienaufzeichnungsvorrichtungen, externe Speichervorrichtungen, Netzwerkkarten usw. beinhalten.
  • In mindestens einer Ausführungsform zeigt die Anzeigesteuerung AMD92 Bilder auf einer oder mehreren Anzeigevorrichtungen an, beispielsweise auf einer Flüssigkristallanzeige („LCD“). In mindestens einer Ausführungsform beinhaltet die Multimedia-Engine 240 ohne Einschränkung eine beliebige Menge und Art von Schaltungen, die sich auf Multimedia beziehen, wie etwa einen Video-Decodierer, einen Video-Codierer, einen Bildsignalprozessor usw. In mindestens einer Ausführungsform ermöglichen die Speichersteuerungen 3180 Datenübertragungen zwischen der APU 3100 und einem vereinheitlichten Systemspeicher 3190. In mindestens einer Ausführungsform nutzen der Kernkomplex 3110 und der Grafikkomplex 3140 den vereinheitlichten Systemspeicher 3190 gemeinsam.
  • In mindestens einer Ausführungsform implementiert die APU 3100 ein Speicher-Teilsystem, das ohne Einschränkung eine beliebige Anzahl und einen beliebigen Typ von Speicher-Steuerungen 3180 und Speichervorrichtungen (z. B. gemeinsamer Speicher 3154) beinhaltet, die einer Komponente zugeordnet oder von mehreren Komponenten gemeinsam genutzt werden können. In mindestens einer Ausführungsform implementiert die APU 3100 ein Cache-Teilsystem, das ohne Einschränkung einen oder mehrere Cache-Speicher (z. B. L2-Caches 2728, L3-Cache 3130 und L2-Cache 3142) beinhaltet, die jeweils für eine beliebige Anzahl von Komponenten reserviert sein können oder von diesen gemeinsam genutzt werden können (z. B. Kerne 3120, Kernkomplex 3110, SIMD-Einheiten 3152, Recheneinheiten 3150 und Grafikkomplex 3140).
  • 32 veranschaulicht eine CPU 3200 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird die CPU 3200 von der AMD Corporation, Santa Clara, Kalifornien, entwickelt. In mindestens einer Ausführungsform kann die CPU 3200 konfiguriert sein, um ein Anwendungsprogramm auszuführen. In mindestens einer Ausführungsform ist die CPU 3200 konfiguriert, um eine Hauptsteuersoftware, wie etwa ein Betriebssystem, auszuführen. In mindestens einer Ausführungsform gibt die CPU 3200 Befehle aus, die einen Betrieb einer externen GPU (nicht gezeigt) steuern. In mindestens einer Ausführungsform kann die CPU 3200 konfiguriert sein, um vom Host ausführbaren Code, der vom CUDA-Quellcode abgeleitet ist, auszuführen, und kann ein externe GPU konfiguriert sein, um von der Vorrichtung ausführbaren Code, der vom CUDA-Quellcode abgeleitet ist, auszuführen. In mindestens einer Ausführungsform beinhaltet die CPU 3200 ohne Einschränkung eine beliebige Anzahl von Kernkomplexen 3210, eine Struktur 3260, E/A-Schnittstellen 3270 und Speichersteuerungen 3280.
  • In mindestens einer Ausführungsform beinhaltet der Kernkomplex 3210 ohne Einschränkung Kerne 3220(1)-3220(4) und einen L3-Cache 3230. In mindestens einer Ausführungsform kann der Kernkomplex 3210 ohne Einschränkung eine beliebige Anzahl von Kernen 3220 und eine beliebige Anzahl und Art von Caches in beliebiger Kombination beinhalten. In mindestens einer Ausführungsform sind die Kerne 3220 konfiguriert, um Anweisungen einer konkreten ISA auszuführen. In mindestens einer Ausführungsform ist jeder Kern 3220 ein CPU-Kern.
  • In mindestens einer Ausführungsform beinhaltet jeder Kern 3220, ohne Einschränkung, eine Abruf-/Decodiereinheit 3222, eine Ganzzahl-Ausführungs-Engine 3224, eine Gleitkomma-Ausführungs-Engine 3226 und einen L2-Cache 3228. In mindestens einer Ausführungsform ruft die Abruf-/Decodiereinheit 3222 Anweisungen ab, decodiert solche Anweisungen, erzeugt Mikrooperationen und sendet separate Mikroanweisungen an die Ganzzahl-Ausführungs-Engine 3224 und die Gleitkomma-Ausführungs-Engine 3226 ab. In mindestens einer Ausführungsform kann die Abruf-/Decodiereinheit 3222 gleichzeitig eine Mikroanweisung an die Ganzzahl-Ausführungs-Engine 3224 und eine weitere Mikroanweisung die Gleitkomma-Ausführungs-Engine 3226 absenden. In mindestens einer Ausführungsform führt die Ganzzahl-Ausführungs-Engine 3224 ohne Einschränkung Ganzzahl- und Speicheroperationen aus. In mindestens einer Ausführungsform führt die Gleitkomma-Engine 3226 ohne Einschränkung Gleitkomma- und Vektoroperationen aus. In mindestens einer Ausführungsform sendet die Abruf-/Decodiereinheit 3222 Mikroanweisungen an eine einzelne Ausführungs-Engine aus, die sowohl die Ganzzahl-Ausführungs-Engine 3224 als auch die Gleitkomma-Ausführungs-Engine 3226 ersetzt.
  • In mindestens einer Ausführungsform kann jeder Kern 3220(i), wobei i eine ganze Zahl ist, die eine bestimmte Instanz des Kerns 3220 darstellt, auf den L2-Cache 3228(i) zugreifen, der zum Kern 3220(i) gehört. In mindestens einer Ausführungsform ist jeder im Kernkomplex 3210(j) beinhaltete Kern 3220, wobei j eine ganze Zahl ist, die eine konkrete Instanz des Kernkomplexes 3210 darstellt, mit anderen Kernen 3220 im Kernkomplex 3210(j) über den L3-Cache 3230(j), der im Kernkomplex 3210(j) beinhaltet ist, verbunden. In mindestens einer Ausführungsform können die im Kernkomplex 3210(j) beinhalteten Kerne 3220, wobei j eine ganze Zahl ist, die eine konkrete Instanz des Kernkomplexes 3210 darstellt, auf den gesamten L3-Cache 3230(j), der im Kernkomplex 3210(j) beinhaltet ist, zugreifen. In mindestens einer Ausführungsform kann der L3-Cache 3230 ohne Einschränkung eine beliebige Anzahl von Slices beinhalten.
  • In mindestens einer Ausführungsform ist die Struktur 3260 eine Systemverbindung, die Daten- und Steuerübertragungen zwischen Kernkomplexen 3210(1)-3210(N) (wobei N eine ganze Zahl größer als Null ist), E/A-Schnittstellen 3270 und Speicher-Steuerungen 3280 ermöglicht. In mindestens einer Ausführungsform kann die CPU 3200 ohne Einschränkung eine beliebige Menge und Art von Systemzusammenschaltungen zusätzlich zu oder anstelle der Struktur 3260 beinhalten, die Daten- und Steuerübertragungen über eine beliebige Anzahl und Art von direkt oder indirekt verbundenen Komponenten ermöglicht, die sich innerhalb oder außerhalb der CPU 3200 befinden können. In mindestens einer Ausführungsform repräsentieren die E/A-Schnittstellen 3270 eine beliebige Anzahl und Art von E/A-Schnittstellen (z. B. PCI, PCI-X, PCIe, GBE, USB usw.). In mindestens einer Ausführungsform sind verschiedene Arten von Peripheriegeräten mit E/A-Schnittstellen 3270 gekoppelt. In mindestens einer Ausführungsform können Peripheriegeräte, die mit den E/A-Schnittstellen 3270 gekoppelt sind, ohne Einschränkung Anzeigen, Tastaturen, Mäuse, Drucker, Scanner, Joysticks oder andere Arten von Spielesteuerungen, Medienaufzeichnungsvorrichtungen, externe Speichervorrichtungen, Netzwerkkarten usw. beinhalten.
  • In mindestens einer Ausführungsform unterstützen die Speichersteuerungen 3280 Datenübertragungen zwischen der CPU 3200 und einem Systemspeicher 3290. In mindestens einer Ausführungsform nutzen der Kernkomplex 3210 und der Grafikkomplex 3240 den Systemspeicher 3290 gemeinsam. In mindestens einer Ausführungsform implementiert die CPU 3200 ein Speicherteilsystem, das ohne Einschränkung eine beliebige Menge und Art von Speichersteuerungen 3280 und Speichervorrichtungen beinhaltet, die einer Komponente zugeordnet oder von mehreren Komponenten gemeinsam genutzt werden können. In mindestens einer Ausführungsform implementiert die CPU 3200 ein Cache-Teilsystem, das ohne Einschränkung einen oder mehrere Cache-Speicher (z. B. L2-Caches 3228 und L3-Caches 3230) beinhaltet, die jeweils für eine beliebige Anzahl von Komponenten reserviert sein können oder von diesen gemeinsam genutzt werden können (z. B. Kerne 3220 und Kernkomplexe 3210).
  • 33 veranschaulicht ein beispielhaftes Beschleuniger-Integrations-Slice 3390. In mindestens einer Ausführungsform umfasst ein „Slice“ einen bestimmten Abschnitt der Verarbeitungsressourcen der Beschleuniger-Integrationsschaltung 3336. In mindestens einer Ausführungsform ist eine Anwendung ein effektiver Adressraum 3382 innerhalb des Systemspeichers 3314, der Prozesselemente 3383 speichert. In mindestens einer Ausführungsform werden Prozesselemente 3383 als Reaktion auf GPU-Aufrufe 3381 von Anwendungen 3380, die auf dem Prozessor 3307 ausgeführt werden, gespeichert. In mindestens einer Ausführungsform enthält ein Prozesselement 3383 den Prozessstatus für die entsprechende Anwendung 3380. In mindestens einer Ausführungsform kann ein in dem Prozesselement 3383 enthaltener Arbeitsdeskriptor (work descriptor - WD) 3384 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 3384 ein Zeiger auf eine Aufgabenanforderungswarteschlange im effektiven Adressraum 3382 einer Anwendung.
  • In mindestens einer Ausführungsform können das Grafikbeschleunigungsmodul 3346 und/oder die einzelnen Grafikverarbeitungs-Engines 3331(1)-3331(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 Prozessstatus und zum Senden des WD 3384 an das Grafikbeschleunigungsmodul 3346 zum Starten einer Aufgabe in einer virtualisierten Umgebung beinhaltet sein.
  • In mindestens einer Ausführungsform ist ein Programmiermodell für dedizierte Prozesse implementierungsspezifisch. In mindestens einer Ausführungsform besitzt in diesem Modell ein einzelner Prozess das Grafikbeschleunigungsmodul 3346 oder eine einzelne Grafikverarbeitungs-Engine 3331. Wenn das Grafikbeschleunigungsmodul 3346 in mindestens einer Ausführungsform einem einzelnen Prozess gehört, initialisiert ein Hypervisor die Beschleuniger-Integrationsschaltung 3336 für eine besitzende Partition, und ein Betriebssystem initialisiert die Beschleuniger-Integrationsschaltung 3336 für einen besitzenden Prozess, wenn das Grafikbeschleunigungsmodul 3346 zugewiesen wird.
  • Im Betrieb holt eine WD-Abrufeinheit 3391 in dem Beschleuniger-Integrations-Slice 3390 in mindestens einer Ausführungsform den nächsten WD 3384 ab, der eine Angabe der Arbeit beinhaltet, die von einer oder mehreren Grafikverarbeitungs-Engines des Grafikbeschleunigungsmoduls 3346 zu erledigen ist. In mindestens einer Ausführungsform können die Daten aus dem WD 3384 in Registern 3345 gespeichert und von der MMU 3339, der Unterbrechungsverwaltungsschaltung 3347 und/oder der Kontextverwaltungsschaltung 3348 verwendet werden, wie es veranschaulicht ist. Eine Ausführungsform der MMU 3339 beinhaltet beispielsweise eine Segment-/Seitenlaufschaltung für den Zugriff auf Segment-/Seitentabellen 3386 innerhalb des virtuellen Adressraums 3385 eines Betriebssystems. Die Unterbrechungsverwaltungsschaltung 3347 kann in mindestens einer Ausführungsform vom Grafikbeschleunigungsmodul 3346 empfangene Unterbrechungsereignisse 3392 verarbeiten. Bei der Durchführung von Grafikoperationen wird in mindestens einer Ausführungsform eine effektive Adresse 3393, die von einer Grafikverarbeitungs-Engine 3331 (1)-3331 (N) erzeugt wird, von der MMU 3339 in eine reale Adresse übersetzt.
  • In mindestens einer Ausführungsform werden für jede Grafikverarbeitungs-Engine 3331 (1)-3331 (N) und/oder jedes Grafikbeschleunigungsmodul 3346 Register 3345 dupliziert, die von einem Hypervisor oder Betriebssystem initialisiert werden können. Jedes dieser duplizierten Register kann in mindestens einer Ausführungsform in einem Beschleuniger-Integrations-Slice 3390 beinhaltet sein. Beispielhafte Register, die durch einen Hypervisor initialisiert werden können, sind in Tabelle 1 gezeigt. Tabelle 1-Vom Hypervisor initialisierte Register
    Register # Beschreibung
    1 Slice-Steuerregister
    2 Geplanter Prozessbereichszeiger für reale Adresse (RA)
    3 Autoritätsmasken-Überschreibungsregister
    4 Unterbrechungsvektor-Tabelleneintrag-Offset
    5 Unterbrechungsvektor-Tabelleneingabebegrenzung
    6 Zustandsregister
    7 Logische Partitions-ID
    8 Hypervisor-Beschleunigungsnutzungsdatensatzzeiger der realen Adresse (RA)
    9 Speicherbeschreibungsregister
  • Beispielhafte Register, die von einem Betriebssystem initialisiert werden können, sind in Tabelle 2 aufgeführt. Tabelle 2-lnitialisierte Register des Betriebssystems
    Register # Beschreibung
    1 Prozess- und Thread-Identifizierung
    2 Kontext-Speicher/Wiederherstellungszeiger der effektiven Adresse (EA)
    3 Beschleunigernutzungsdatensatzzeiger der virtuellen Adresse (VA)
    4 Speichersegmenttabellenzeiger der virtuellen Adresse (VA)
    5 Autoritätsmaske
    6 Arbeitsdeskriptor
  • In mindestens einer Ausführungsform ist jeder WD 3384 spezifisch für ein bestimmtes Grafikbeschleunigungsmodul 3346 und/oder die Grafikverarbeitungsmaschinen 3331(1)-3331(N). Er enthält in mindestens einer Ausführungsform alle Informationen, die von einer Grafikverarbeitungsmaschine 3331 (1)-3331 (N) benötigt werden, um Arbeit zu verrichten, oder er kann ein Zeiger auf einen Speicherplatz sein, an dem eine Anwendung eine Befehlswarteschlange von zu verrichtender Arbeit eingerichtet hat.
  • 34A-34B veranschaulichen beispielhafte integrierte Schaltungen und zugehörige Grafikprozessoren, die unter Verwendung eines oder mehrerer IP-Cores hergestellt werden können, gemäß verschiedenen hierin beschriebenen Ausführungsformen. Zusätzlich zu den veranschaulichten Schaltungen können in mindestens einer Ausführungsform weitere Logik und Schaltungen beinhaltet sein, einschließlich zusätzlicher Grafikprozessoren/-kerne, Controller für periphere Schnittstellen oder Allzweckprozessorkerne.
  • 34A-34B sind Blockdiagramme, die beispielhafte Grafikprozessoren zur Verwendung innerhalb eines SoC gemäß hierin beschriebenen Ausführungsformen veranschaulichen. 34A veranschaulicht einen beispielhaften Grafikprozessor 3410 einer integrierten Schaltung als System auf einem Chip, der unter Verwendung eines oder mehrerer IP-Kerne hergestellt sein kann, gemäß mindestens einer Ausführungsform. 34B zeigt einen weiteren beispielhaften Grafikprozessor 3440 einer integrierten Schaltung als System auf einem Chip, der unter Verwendung eines oder mehrerer IP-Kerne hergestellt sein kann, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der Grafikprozessor 3410 aus 34A ein Grafikprozessorkern mit niedriger Leistung. In mindestens einer Ausführungsform ist der Grafikprozessor 3440 aus 34B ein Grafikprozessorkern mit höherer Leistungsfähigkeit. In mindestens einer Ausführungsform kann jeder der Grafikprozessoren 3410, 3440 eine Variante des Grafikprozessors 2910 aus 29 sein.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3410 einen Vertex-Prozessor 3405 und einen oder mehrere Fragmentprozessoren 3415A-3415N (z. B. 3415A, 3415B, 3415C, 3415D bis 3415N-1 und 3415N). In mindestens einer Ausführungsform kann der Grafikprozessor 3410 unterschiedliche Shader-Programme über separate Logik ausführen, sodass der Vertex-Prozessor 3405 optimiert ist, um Operationen für Vertex-Shader-Programme auszuführen, während ein oder mehrere Fragmentprozessor(en) 3415A-3415N 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 Vertex-Prozessor 3405 eine Vertex-Verarbeitungsstufe einer 3D-Grafikpipeline durch und erzeugt Primitiv- und Vertexdaten. In mindestens einer Ausführungsform verwenden ein oder mehrere Fragmentprozessor(en) 3415A-3415N Primitiv- und Vertex-Daten, die durch den Vertex-Prozessor 3405 erzeugt werden, um einen Bildspeicher zu erzeugen, der auf einer Anzeigevorrichtung angezeigt wird. In mindestens einer Ausführungsform sind ein oder mehrere Fragmentprozessor(en) 3415A-3415N optimiert, um Fragment-Shader-Programme auszuführen, wie in einer OpenGL-API bereitgestellt, die verwendet werden können, um ähnliche Operationen wie ein Pixel-Shader-Programm durchzuführen, wie es in einer Direct 3D-API bereitgestellt ist.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3410 zusätzlich eine oder mehrere Speicherverwaltungseinheiten (memory management units - MMUs) 3420A-3420B, Cache(s) 3425A-3425B und Schaltungszusammenschaltung(en) 3430A-3430B. In mindestens einer Ausführungsform stellen eine oder mehrere MMU 3420A-3420B eine virtuellphysische Adresszuordnung für den Grafikprozessor 3410 bereit, was für den Vertex-Prozessor 3405 und/oder Fragmentprozessor(en) 3415A-3415N beinhaltet, die sich auf Vertex- oder im Speicher gespeicherte Bild-/Texturdaten zusätzlich zu in einem oder mehreren Cache 3425A-3425B gespeicherten Vertex- oder Bild-/Texturdaten beziehen kann. In mindestens einer Ausführungsform können eine oder mehrere MMU 3420A-3420B mit anderen MMU innerhalb des Systems synchronisiert werden, was beinhaltet, dass eine oder mehrere MMU einem oder mehreren Anwendungsprozessoren 2905, Bildprozessoren 2915 und/oder Videoprozessoren 2920 aus 29 zugeordnet sind, sodass jeder Prozessor 2905-2920 an einem gemeinsam genutzten oder vereinheitlichten virtuellen Speichersystem teilnehmen kann. In mindestens einer Ausführungsform ermöglichen eine oder mehrere Schaltungszusammenschaltung(en) 3430A-3430B dem Grafikprozessor 3410, mit anderen IP-Kernen innerhalb eines SoC Schnittstellen zu bilden, entweder über einen internen Bus eines SoC oder über eine direkte Verbindung.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3440 einen oder mehrere Shader-Kern(e) 3455A-3455N (z. B. 3455A, 3455B, 3455C, 3455D, 3455E, 3455F bis 3455N-1 und 3455N) wie in 34B gezeigt, was eine vereinheitlichte Shader-Kernarchitektur bereitstellt, in der ein(e) einzelne(r) Kern oder Art oder Kern alle Arten von programmierbarem Shader-Code ausführen kann, was Shader-Programmcode beinhaltet, um Vertex-Shader, Fragment-Shader und/oder Compute-Shader zu implementieren. In mindestens einer Ausführungsform kann die Anzahl der Shader-Kerne variieren. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3440 eine Aufgabenverwaltung innerhalb des Kerns 3445, die als Thread-Verteiler fungiert, um Ausführungs-Threads an einen oder mehrere Shader-Kerne 3455A-3455N zu verteilen, und eine Kachelungseinheit 3458, um Kachelungsoperationen für kachelbasiertes Rendering zu beschleunigen, bei dem Rendering-Operationen für eine Szene im Bildraum unterteilt werden, um zum Beispiel lokale räumliche Kohärenz innerhalb einer Szene auszunutzen oder um die Nutzung interner Caches zu optimieren.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 der integrierten Schaltung 34A und/oder 34B für Inferenz- oder Vorhersageoperationen mindestens teilweise basierend auf Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • 35A-35B veranschaulichen eine zusätzliche beispielhafte Grafikprozessorlogik gemäß den hier beschriebenen Ausführungsformen. 35A veranschaulicht einen Grafikkern 3500, der in mindestens einer Ausführungsform innerhalb des Grafikprozessors 2910 aus 29 vorhanden sein kann und in mindestens einer Ausführungsform ein einheitlicher Shader-Kern 3055A-3055N wie in 30B sein kann. 35B veranschaulicht eine hochparallele Universal-Grafikverarbeitungseinheit (general-purpose graphics processing unit - „GPGPU“) 3530, 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 3500 einen gemeinsam genutzten Anweisungscache 3502, eine Textureinheit 3518 und einen Cache/gemeinsam genutzten Speicher3520 (z. B. einschließlich L1, L2, L3, Cache der letzten Ebene oder andere Caches), die den Ausführungsressourcen innerhalb des Grafikkerns 3500 gemeinsam sind. In mindestens einer Ausführungsform kann der Grafikkern 3500 mehrere Slices 3501A-3501N oder eine Partition für jeden Kern beinhalten, und ein Grafikprozessor kann mehrere Instanzen des Grafikkerns 3500 beinhalten. In mindestens einer Ausführungsform bezieht sich jedes Slice 3501A-3501N auf den Grafikkern 3500. In mindestens einer Ausführungsform weisen die Slices 3501A-3501N Unter-Slices, die Teil eines Slice 3501A-3501N sind, auf. In mindestens einer Ausführungsform sind die Slices 3501A-3501N unabhängig von anderen Slices oder abhängig von anderen Slices. In mindestens einer Ausführungsform können die Slices 3501A-3501N eine Unterstützungslogik beinhalten, die einen lokalen Anweisungscache 3504A-3504N, einen Thread-Planer (Sequenzer) 3506A-3506N, einen Thread-Dispatcher 3508A-3508N und einen Satz von Registern 3510A-3510N beinhaltet. In mindestens einer Ausführungsform können die Slices 3501A-3501N einen Satz zusätzlicher Funktionseinheiten (AFUs 3512A-3512N), Gleitkommaeinheiten (FPUs 3514A-3514N), ganzzahlige arithmetische Logikeinheiten (ALUs 3516A-3516N), Adressberechnungseinheiten (ACUs 3513A-3513N), Gleitkommaeinheiten mit doppelter Genauigkeit (DPFPUs 3515A-3515N) und Matrixverarbeitungseinheiten (MPUs 3517A-3517N) beinhalten.
  • In mindestens einer Ausführungsform beinhaltet jedes Slice 3501A-3501N eine oder mehrere Engines für Gleitkomma- und Ganzzahlvektoroperationen sowie eine oder mehrere Engines zur Beschleunigung von Faltungs- und Matrixoperationen bei KI, maschinellem Lernen oder Arbeitslasten mit großen Datensätzen. In mindestens einer Ausführungsform beinhalten ein oder mehrere Slices 3501A-3501N eine oder mehrere Vektor-Engines zur Berechnung eines Vektors (z. B. zur Berechnung mathematischer Operationen für Vektoren). In mindestens einer Ausführungsform kann eine Vektor-Engine eine Vektoroperation in 16-Bit-Gleitkomma (auch als „FP16“ bezeichnet), 32-Bit-Gleitkomma (auch als „FP32“ bezeichnet) oder 64-Bit-Gleitkomma (auch als „FP64“ bezeichnet) berechnen. In mindestens einer Ausführungsform beinhaltet ein oder mehrere Slices 3501A-3501N 16 Vektor-Engines, die mit 16 Matrix-Mathematikeinheiten gepaart sind, um Matrix-/Tensor-Operationen zu berechnen, wobei die Vektor-Engines und die Mathematikeinheiten über Matrix-Erweiterungen zugänglich sind. In mindestens einer Ausführungsform beinhaltet ein Slice einen bestimmten Abschnitt der Verarbeitungsressourcen einer Verarbeitungseinheit, z. B. 16 Kerne und eine Raytracing-Einheit oder 8 Kerne, einen Thread-Planer, einen Thread-Dispatcher und zusätzliche Funktionseinheiten für einen Prozessor. In mindestens einer Ausführungsform beinhaltet der Grafikkern 3500 eine oder mehrere Matrix-Engines zur Berechnung von Matrixoperationen, z. B. bei der Berechnung von Tensoroperationen.
  • In mindestens einer Ausführungsform beinhaltet ein oder mehrere Slices 3501A-3501N eine oder mehrere Raytracing-Einheiten zur Berechnung von Raytracing-Operationen (z. B. 16 Raytracing-Einheiten pro Slice-Slices 3501A-3501N). In mindestens einer Ausführungsform berechnet eine Raytracing-Einheit Strahlenüberquerungen, Dreiecksüberschneidungen, Bounding-Box-Überschneidungen oder andere Raytracing-Operationen.
  • In mindestens einer Ausführungsform beinhaltet ein oder mehrere Slices 3501A-3501N ein Medien-Slice, das Daten kodiert, dekodiert und/oder transkodiert, Daten skaliert und/oder formatiert und/oder Videoqualitätsoperationen an Videodaten durchführt.
  • In mindestens einer Ausführungsform sind ein oder mehrere Slices 3501A-3501N mit L2-Cache und Speicherstruktur, Verbindungsanschlüssen, HBM-Stapeln (high-bandwidth memory) (z. B. HBM2e, HDM3) und einer Medien-Engine verbunden. In mindestens einer Ausführungsform beinhalten ein oder mehrere Slices 3501A-3501N mehrere Kerne (z. B. 16 Kerne) und mehrere Raytracing-Einheiten (z. B. 16), die mit jedem Kern gepaart sind. In mindestens einer Ausführungsform weisen ein oder mehrere Slices 3501A-3501N einen oder mehrere L1-Caches auf. In mindestens einer Ausführungsform beinhalten eine oder mehrere Slices 3501A-3501N eine oder mehrere Vektor-Engines; einen oder mehrere Anweisungscaches zum Speichern von Anweisungen; einen oder mehrere L1-Caches zum Zwischenspeichern von Daten; einen oder mehrere gemeinsam genutzte lokale Speicher (shared local memories - SLMs) zum Speichern von Daten, die z. B. Anweisungen entsprechen; einen oder mehrere Sampler zum Abtasten von Daten; eine oder mehrere Raytracing-Einheiten zum Durchführen von Raytracing-Operationen; eine oder mehrere Geometrien zum Durchführen von Operationen in Geometrie-Pipelines und/oder zum Anwenden geometrischer Transformationen auf Scheitelpunkte oder Polygone; einen oder mehrere Rasterizer zum Beschreiben eines Bildes im Vektorgrafikformat (z. B. Form) und zu dessen Umwandlung in ein Rasterbild (z. B. eine Reihe von Pixeln, Punkten oder Linien, die, wenn sie zusammen angezeigt werden, ein Bild erzeugen, das durch Formen dargestellt wird); einen oder mehrere Hierarchische Tiefenpuffer (Hiz) zum Puffern von Daten; und/oder ein oder mehrere Pixel-Backends. In mindestens einer Ausführungsform beinhaltet ein Slice 3501A-3501N eine Speicherstruktur, z. B. einen L2-Cache.
  • In mindestens einer Ausführungsform können die FPUs 3514A-3514N Gleitkommaoperationen mit einfacher Genauigkeit (32 Bit) und halber Genauigkeit (16 Bit) durchführen, während die DPFPUs 3515A-3515N Gleitkommaoperationen mit doppelter Genauigkeit (64 Bit) durchführen. In mindestens einer Ausführungsform können die ALUs 3516A-3516N ganzzahlige Operationen 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 3517A-3517N auch für Matrixoperationen mit gemischter Genauigkeit konfiguriert sein, einschließlich Gleitkomma- und ganzzahligen 8-Bit-Operationen mit halber Genauigkeit. In mindestens einer Ausführungsform können die MPUs 3517-3517N eine Vielfalt von Matrixoperationen durchführen, um Anwendungsrahmen für maschinelles Lernen zu beschleunigen, einschließlich der Ermöglichung 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 3512A-3512N zusätzliche logische Operationen durchführen, die nicht durch Gleitkomma- oder Ganzzahl-Einheiten unterstützt werden, einschließlich trigonometrischer Operationen (z. B. Sinus, Cosinus). Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen in Verbindung mit einer oder mehreren Ausführungsformen durchzuführen. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 im Grafikkern 3500 für Inferenz- oder Vorhersageoperationen mindestens teilweise basierend auf Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkern 3500 eine Zusammenschaltung und eine Link-Fabric-Teilschicht, die mit einem Switch und einer GPU-GPU-Brücke verbunden ist, die es ermöglicht, mehrere Grafikprozessoren 3500 (z. B. 8) ohne Kleber mit Lade-/Speichereinheiten (load/store units - LSUs), Datenübertragungseinheiten und Synchronisierungssemantik über mehrere Grafikprozessoren 3500 miteinander zu verbinden. In mindestens einer Ausführungsform beinhalten die Zusammenschaltungen standardisierte Zusammenschaltungen (z. B. PCIe) oder eine Kombination davon.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkern 3500 mehrere Kacheln. In mindestens einer Ausführungsform ist eine Kachel ein einzelner Chip oder ein oder mehrere Chips, wobei die einzelnen Chips mit einer Zusammenschaltung (z. B. einer eingebetteten Multi-Die-Interconnect-Brücke (EMIB)) verbunden werden können. In mindestens einer Ausführungsform beinhaltet der Grafikkern 3500 eine Rechenkachel, eine Speicherkachel (z. B. wenn auf eine Speicherkachel von verschiedenen Kacheln oder verschiedenen Chipsätzen wie etwa einer Rambo-Kachel exklusiv zugegriffen werden kann), eine Substrat-Kachel, eine Basis-Kachel, eine HMB-Kachel, eine Verbindungskachel und eine EMIB-Kachel, wobei alle Kacheln zusammen im Grafikkern 3500 als Teil einer GPU verpackt sind. In mindestens einer Ausführungsform kann der Grafikkern 3500 mehrere Kacheln in einem einzigen Paket beinhalten (auch als ein „Multi-Kachel-Paket“ bezeichnet). In mindestens einer Ausführungsform kann eine Rechenkachel 8 Grafikkerne 3500, einen L1-Cache aufweisen; und eine Basis-Kachel kann eine Host-Schnittstelle mit PCIe 5.0, HBM2e, MDFI und EMIB, eine -Verbindungskachel mit 8 Verbindungen, 8 Ports mit einem eingebetteten Switch aufweisen. In mindestens einer Ausführungsform werden die Kacheln mit Face-to-Face (F2F)-Chip-on-Chip-Bonding durch Mikrobumps (z. B. Kupfersäulen) mit feinem Raster von 36 Mikrometern verbunden. In mindestens einer Ausführungsform beinhaltet der Grafikkern 3500 eine Speicherstruktur, die einen Speicher und eine Kachel beinhaltet, und ist eine Kachel, auf die mehrere Kacheln zugreifen können. In mindestens einer Ausführungsform speichert, greift der Grafikkern 3500 auf seine eigenen Hardwarekontexte zu oder lädt sie in den Speicher, wobei ein Hardwarekontext ein Satz von Daten ist, die vor der Wiederaufnahme eines Prozesses aus Registern geladen werden, und wobei ein Hardwarekontext einen Zustand der Hardware (z. B. den Zustand einer GPU) anzeigen kann.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkern 3500 eine Serialisierungs-/Deserialisierungsschaltung (SERDES), die einen seriellen Datenstrom in einen parallelen Datenstrom oder einen parallelen Datenstrom in einen seriellen Datenstrom umwandelt.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkern 3500 eine kohärente Hochgeschwindigkeits-Unified-Fabric (GPU zu GPU), Lade-/Speichereinheiten, Massendatenübertragung und Synchronisierungssemantik sowie über einen eingebetteten Switch verbundene GPUs, wobei eine GPU-GPU-Brücke von einer Steuerung gesteuert wird.
  • In mindestens einer Ausführungsform führt der Grafikkern 3500 eine API aus, wobei die API die Hardware des Grafikkerns 3500 abstrahiert und auf Bibliotheken mit Anweisungen zur Durchführung von mathematischen Operationen (z. B. Mathematik-Kernel-Bibliothek), Operationen für tiefe neuronale Netze (z. B. Bibliothek für tiefe neuronale Netze), Vektoroperationen, kollektive Kommunikation, Thread-Bausteine, Videoverarbeitung, Datenanalysebibliothek und/oder Raytracing-Operationen zugreift.
  • 35B veranschaulicht eine Universalverarbeitungseinheit (general purpose processing unit - GPGPU) 3530, die so konfiguriert sein kann, dass hochparallele Rechenoperationen von einem Array von Grafikverarbeitungseinheiten durchgeführt werden können, in mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die GPGPU 3530 direkt mit anderen Instanzen der GPGPU 3530 verknüpft sein, um einen Multi-GPU-Cluster zu erzeugen, um die Trainingsgeschwindigkeit für tiefe neuronale Netze zu verbessern. In mindestens einer Ausführungsform beinhaltet die GPGPU 3530 eine Host-Schnittstelle 3532, um eine Verbindung mit einem Host-Prozessor zu ermöglichen. In mindestens einer Ausführungsform handelt es sich bei der Host-Schnittstelle 3532 um eine PCI-Express-Schnittstelle. In mindestens einer Ausführungsform kann es sich bei der Host-Schnittstelle 3532 um eine anbieterspezifische Kommunikationsschnittstelle oder Kommunikationsstruktur handeln. In mindestens einer Ausführungsform empfängt die GPGPU 3530 Befehle von einem Host-Prozessor und verwendet einen globalen Planer 3534 (der auch als Thread-Sequenzer und/oder asynchrone Rechenmaschine bezeichnet werden kann), um Ausführungs-Threads, die diesen Befehlen zugeordnet sind, an einen Satz von Rechenclustern 3536A-3536H zu verteilen. In mindestens einer Ausführungsform nutzen die Rechencluster 3536A-3536H einen Cache-Speicher 3538 gemeinsam. In mindestens einer Ausführungsform kann der Cache-Speicher 3538 als ein Cache höherer Ebene für Cache-Speicher innerhalb der Rechencluster 3536A-3536H dienen.
  • In mindestens einer Ausführungsform beinhaltet die GPGPU 3530 Speicher 3544A-3544B, der über einen Satz von Speichersteuerungen 3542A-3542B mit den Rechenclustern 3536A-3536H gekoppelt ist (z. B. ein oder mehrere Steuerungen für HBM2e). In mindestens einer Ausführungsform kann der Speicher 3544A-3544B 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 3536A-3536H jeweils einen Satz von Grafikkernen, wie etwa den Grafikkern 3500 aus 35A, 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 3536A-3536H 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 3530 für den Betrieb als ein Rechencluster konfiguriert sein. In mindestens einer Ausführungsform variiert die Kommunikation, die durch die Rechencluster 3536A-3536H für die Synchronisation und den Datenaustausch verwendet wird, je nach Ausführungsform. In mindestens einer Ausführungsform kommunizieren mehrere Instanzen der GPGPU 3530 über die Host-Schnittstelle 3532. In mindestens einer Ausführungsform beinhaltet die GPGPU 3530 einen E/A-Hub 3539, der die GPGPU 3530 mit einer GPU-Verbindung 3540 koppelt, die eine direkte Verbindung zu anderen Instanzen der GPGPU 3530 ermöglicht. In mindestens einer Ausführungsform ist die GPU-Verknüpfung 3540 an eine dedizierte GPU-zu-GPU-Brücke gekoppelt, die Kommunikation und Synchronisation zwischen mehreren Instanzen der GPGPU 3530 ermöglicht. In mindestens einer Ausführungsform ist die GPU-Verknüpfung 3540 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 3530 in separaten Datenverarbeitungssystemen und kommunizieren über eine Netzwerkvorrichtung, auf die über die Host-Schnittstelle 3532 zugegriffen werden kann. In mindestens einer Ausführungsform kann die GPU-Verknüpfung 3540 so konfiguriert sein, dass eine Verbindung zu einem Host-Prozessor zusätzlich zu oder alternativ zu der Host-Schnittstelle 3532 ermöglicht wird.
  • In mindestens einer Ausführungsform kann die GPGPU 3530 dazu konfiguriert sein, neuronale Netze zu trainieren. In mindestens einer Ausführungsform kann die GPGPU 3530 innerhalb einer Inferenzierungsplattform verwendet werden. In mindestens einer Ausführungsform, in der die GPGPU 3530 zum Inferenzieren verwendet wird, kann die GPGPU 3530 weniger Rechencluster 3536A-3536H beinhalten als in dem Fall, dass die GPGPU 3530 zum Trainieren eines neuronalen Netzes verwendet wird. In mindestens einer Ausführungsform kann sich die dem Speicher 3544A-3544B zugeordnete Speichertechnologie zwischen Inferenz- und Trainingskonfigurationen unterscheiden, wobei den Trainingskonfigurationen Speichertechnologien mit höherer Bandbreite gewidmet sind. In mindestens einer Ausführungsform kann die Inferenzierungskonfiguration der GPGPU 3530 inferenzierungsspezifische Anweisungen unterstützen. In mindestens einer Ausführungsform kann eine Inferenzierungskonfiguration zum Beispiel Unterstützung für eine oder mehrere 8-Bit-lnteger-Skalarprodukt-Anweisungen bereitstellen, die während der Inferenzierungsoperationen für eingesetzte neuronale Netze verwendet werden können.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 in der GPGPU 3530 für Inferenz- oder Vorhersageoperationen mindestens teilweise basierend auf Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • 36A veranschaulicht einen Parallelprozessor 3600 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können verschiedene Komponenten des Parallelprozessors 3600 unter Verwendung einer oder mehrerer integrierter Schaltungsvorrichtungen, wie etwa programmierbare Prozessoren, anwendungsspezifische integrierte Schaltungen (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs), implementiert werden. In mindestens einer Ausführungsform ist der veranschaulichte Parallelprozessor 3600 eine Variante eines oder mehrerer Parallelprozessor(en) 3012, die in 30 gemäß einer beispielhaften Ausführungsform gezeigt sind. In mindestens einer Ausführungsform beinhaltet ein Parallelprozessor 3600 einen oder mehrere Grafikkerne 3400.
  • In mindestens einer Ausführungsform beinhaltet der Parallelprozessor 3600 eine Parallelverarbeitungseinheit 3602. In mindestens einer Ausführungsform beinhaltet die Parallelverarbeitungseinheit 3602 eine E/A-Einheit 3604, die Kommunikation mit anderen Vorrichtungen ermöglicht, einschließlich anderer Instanzen der Parallelverarbeitungseinheit 3602. In mindestens einer Ausführungsform kann die E/A-Einheit 3604 direkt mit anderen Vorrichtungen verbunden sein. In mindestens einer Ausführungsform ist die E/A-Einheit 3604 über die Verwendung einer Hub- oder Switch-Schnittstelle, wie etwa eines Speicher-Hubs 3605, mit anderen Vorrichtungen verbunden. In mindestens einer Ausführungsform bilden Verbindungen zwischen dem Speicher-Hub 3605 und der E/A-Einheit 3604 eine Kommunikationsverbindung 3613. In mindestens einer Ausführungsform ist die E/A-Einheit 3604 mit einer Host-Schnittstelle 3606 und einer Speicherkreuzschiene 3616 verbunden, wobei die Host-Schnittstelle 3606 Befehle empfängt, die auf das Durchführen von Verarbeitungsoperationen gerichtet sind, und die Speicherkreuzschiene 3616 Befehle empfängt, die auf das Durchführen von Speicheroperationen gerichtet sind.
  • In mindestens einer Ausführungsform, wenn die Host-Schnittstelle 3606 einen Befehlspuffer über die E/A-Einheit 3604 empfängt, kann die Host-Schnittstelle 3606 Arbeitsoperationen zur Ausführung dieser Befehle an ein Frontend 3608 leiten. In mindestens einer Ausführungsform ist das Front-End 3608 mit einem Planer 3610 gekoppelt (der auch als Sequenzer bezeichnet werden kann), der dazu konfiguriert ist, Befehle oder andere Arbeitselemente an ein Verarbeitungscluster-Array 3612 zu verteilen. In mindestens einer Ausführungsform stellt der Planer 3610 sicher, dass das Verarbeitungscluster-Array 3612 ordnungsgemäß konfiguriert ist und sich in einem gültigen Zustand befindet, bevor Aufgaben an einen Cluster des Verarbeitungscluster-Arrays 3612 verteilt werden. In mindestens einer Ausführungsform ist der Planer 3610 über Firmware-Logik implementiert, die auf einem Mikrocontroller ausgeführt wird. In mindestens einer Ausführungsform ist der durch einen Mikrocontroller implementierte Planer 3610 konfigurierbar, um komplexe Planungs- und Arbeitsverteilungsoperationen mit grober und feiner Granularität durchzuführen, was eine schnelle Vorbelegung und Kontextumschaltung von Threads ermöglicht, die auf dem Verarbeitungs-Array 3612 ausgeführt werden. In mindestens einer Ausführungsform kann die Host-Software Arbeitslasten für die Planung auf dem Verarbeitungscluster-Array 3612 über eine von mehreren Grafikverarbeitungspfaden nachweisen. In mindestens einer Ausführungsform können Arbeitslasten dann durch die Logik des Planers 3610 innerhalb eines Mikrocontrollers, der den Planer 3610 beinhaltet, automatisch über den Verarbeitungs-Array-Cluster 3612 verteilt werden.
  • In mindestens einer Ausführungsform kann das Verarbeitungscluster-Array 3612 bis zu „N“ Verarbeitungscluster beinhalten (z. B. Cluster 3614A, Cluster 3614B, bis Cluster 3614N), wobei „N“ eine positive ganze Zahl darstellt (welche eine andere positive ganze Zahl „N“ sein kann als die, die in den anderen Figuren verwendet wird). In mindestens einer Ausführungsform kann jeder Cluster 3614A-3614N des Verarbeitungscluster-Arrays 3612 eine große Anzahl gleichzeitiger Threads ausführen. In mindestens einer Ausführungsform kann der Planer 3610 den Clustern 3614A-3614N des Verarbeitungscluster-Arrays 3612 unter Verwendung verschiedener Planungs- und/oder Arbeitsverteilungsalgorithmen Arbeit zuweisen, die abhängig von der für jede Art von Programm oder Berechnung entstehenden Arbeitslasten variieren können. In mindestens einer Ausführungsform kann die Planung dynamisch durch den Planer 3610 gehandhabt werden oder kann teilweise durch die Compilerlogik während der Kompilierung der Programmlogik unterstützt werden, die für die Ausführung durch das Verarbeitungscluster-Array 3612 konfiguriert ist. In mindestens einer Ausführungsform können unterschiedliche Cluster 3614A-3614N des Verarbeitungscluster-Arrays 3612 zum Verarbeiten unterschiedlicher Arten von Programmen oder zum Durchführen unterschiedlicher Arten von Berechnungen zugewiesen werden.
  • In mindestens einer Ausführungsform kann das Verarbeitungscluster-Array 3612 so konfiguriert sein, dass es verschiedene Typen von Parallelverarbeitungsoperationen durchführt. In mindestens einer Ausführungsform ist das Verarbeitungscluster-Array 3612 so konfiguriert, dass es Universal-Parallelberechnungsoperationen durchführt. Zum Beispiel kann in mindestens einer Ausführungsform das Verarbeitungscluster-Array 3612 eine Logik beinhalten, um Verarbeitungsaufgaben auszuführen, einschließlich der Filterung von Video- und/oder Audiodaten, der Durchführung von Modellierungsoperationen, einschließlich physischer Operationen, und der Durchführung von Datentransformationen.
  • In mindestens einer Ausführungsform ist das Verarbeitungscluster-Array 3612 so konfiguriert, dass es parallele Grafikverarbeitungsoperationen durchführt. In mindestens einer Ausführungsform kann das Verarbeitungscluster-Array 3612 eine zusätzliche Logik beinhalten, um die Ausführung solcher Grafikverarbeitungsoperationen zu unterstützen, einschließlich, aber nicht beschränkt auf Texturabtastlogik, um Texturoperationen durchzuführen, sowie Tesselationslogik und andere Vertexverarbeitungslogik. In mindestens einer Ausführungsform kann das Verarbeitungscluster-Array 3612 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 3602 Daten aus dem Systemspeicher über die E/A-Einheit 3604 zur Verarbeitung übermitteln. In mindestens einer Ausführungsform können die übertragenen Daten während der Verarbeitung im chipinternen Speicher (z. B. im Parallelprozessorspeicher 3622) gespeichert und dann in den Systemspeicher zurückgeschrieben werden.
  • In mindestens einer Ausführungsform, wenn die Parallelverarbeitungseinheit 3602 zum Ausführen der Grafikverarbeitung verwendet wird, kann der Planer 3610 so konfiguriert sein, dass er ein Verarbeitungspensum in ungefähr gleich große Aufgaben aufteilt, um eine bessere Verteilung der Grafikverarbeitungsoperationen auf mehrere Cluster 3614A-3614N des Verarbeitungscluster-Arrays 3612 zu ermöglichen. In mindestens einer Ausführungsform können Abschnitte des Verarbeitungscluster-Arrays 3612 so konfiguriert sein, dass sie verschiedene Arten der Verarbeitung ausführen. Zum Beispiel kann in mindestens einer Ausführungsform ein erster Abschnitt so konfiguriert sein, dass er Vertex-Shading und Topologieerzeugung durchführt, ein zweiter Abschnitt kann so konfiguriert sein, dass er Tesselierungs- und Geometrie-Shading durchführt, und ein dritter Abschnitt kann so konfiguriert sein, dass er Pixel-Shading oder andere Bildschirmraumoperationen 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 3614A-3614N erzeugt werden, in Puffern gespeichert werden, um zu ermöglichen, dass Zwischendaten zwischen den Clustern 3614A-3614N zur weiteren Verarbeitung übertragen werden.
  • In mindestens einer Ausführungsform kann das Verarbeitungscluster-Array 3612 über den Planer 3610, der Befehle zur Definition von Verarbeitungstasks vom Frontend 3608 empfängt, auszuführende Verarbeitungs-Aufgaben empfangen. In mindestens einer Ausführungsform können die Verarbeitungs-Tasks Indizes der zu verarbeitenden Daten beinhalten, z. B. Oberflächen-(Patch-)Daten, Primitivdaten, Vertexdaten und/oder Pixeldaten, sowie Zustandsparameter 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 Planer 3610 konfiguriert sein, um Indizes abzurufen, die Tasks entsprechen, oder kann Indizes von dem Frontend 3608 empfangen. In mindestens einer Ausführungsform kann das Frontend 3608 konfiguriert sein, um sicherzustellen, dass das Verarbeitungscluster-Array 3612 in einen gültigen Zustand konfiguriert ist, bevor eine durch eingehende Befehlspuffer (z. B. Stapelpuffer, Push-Puffer usw.) spezifizierte Arbeitslast initiiert wird.
  • In mindestens einer Ausführungsform kann jede von einer oder mehreren Instanzen der Parallelverarbeitungseinheit 3602 mit einem Parallelprozessorspeicher 3622 gekoppelt sein. In mindestens einer Ausführungsform kann auf den Parallelprozessorspeicher 3622 über die Speicherkreuzschiene 3616 zugegriffen werden, die Speicheranforderungen von dem Verarbeitungscluster-Array 3612 sowie von der E/A-Einheit 3604 empfangen kann. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 3616 über eine Speicherschnittstelle 3618 auf den Parallelprozessorspeicher 3622 zugreifen. In mindestens einer Ausführungsform kann die Speicherschnittstelle 3618 mehrere Partitionseinheiten (z. B. Partitionseinheit 3620A, Partitionseinheit 3620B bis Partitionseinheit 3620N) beinhalten, die jeweils an einen Abschnitt (z. B. Speichereinheit) des Parallelprozessorspeichers 3622 gekoppelt sein können. In mindestens einer Ausführungsform ist eine Anzahl der Partitionseinheiten 3620A-3620N so konfiguriert, dass sie gleich einer Anzahl von Speichereinheiten ist, sodass eine erste Partitionseinheit 3620A eine entsprechende erste Speichereinheit 3624A aufweist, eine zweite Partitionseinheit 3620B eine entsprechende Speichereinheit 3624B aufweist und eine N-te Partitionseinheit 3620N eine entsprechende N-te Speichereinheit 3624N aufweist. In mindestens einer Ausführungsform kann eine Anzahl von Partitionseinheiten 3620A-3620N möglicherweise nicht gleich einer Anzahl von Speichereinheiten sein.
  • In mindestens einer Ausführungsform können die Speichereinheiten 3624A-3624N verschiedene Arten von Speichervorrichtungen beinhalten, einschließlich dynamischer Direktzugriffsspeicher (DRAM) oder Grafik-Direktzugriffsspeicher, wie etwa synchroner Grafik-Direktzugriffsspeicher (SGRAM), einschließlich Grafik-Doppeldatenraten-Speicher (GDDR). In mindestens einer Ausführungsform können die Speichereinheiten 3624A-3624N auch 3D-Stapelspeicher beinhalten, einschließlich, aber nicht beschränkt auf, Speicher mit hoher Bandbreite (high bandwidth memory - HBM), HBM2e, oder HDM3. In mindestens einer Ausführungsform können Rendering-Ziele, wie etwa Bildspeicher oder Texturkarten, über die Speichereinheiten 3624A-3624N hinweg gespeichert werden, was es den Partitionseinheiten 3620A-3620N ermöglicht, Abschnitte jedes Rendering-Ziels parallel zu schreiben, um die verfügbare Bandbreite des Parallelprozessorspeichers 3622 effizient zu nutzen. In mindestens einer Ausführungsform kann eine lokale Instanz des Parallelprozessorspeichers 3622 zugunsten einer vereinheitlichten Speicherausgestaltung ausgeschlossen werden, die Systemspeicher in Verbindung mit lokalem Cache-Speicher nutzt.
  • In mindestens einer Ausführungsform kann jeder der Cluster 3614A-3614N des Verarbeitungscluster-Arrays 3612 Daten verarbeiten, die in eine der Speichereinheiten 3624A-3624N innerhalb des Parallelprozessorspeichers 3622 geschrieben werden. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 3616 so konfiguriert sein, dass sie eine Ausgabe jedes Clusters 3614A-3614N an eine beliebige Partitionseinheit 3620A-3620N oder an einen anderen Cluster 3614A-3614N übermittelt, der zusätzliche Verarbeitungsoperationen an einer Ausgabe ausführen kann. In mindestens einer Ausführungsform kann jeder Cluster 3614A-3614N durch die Speicherkreuzschiene 3616 mit der Speicherschnittstelle 3618 kommunizieren, um aus verschiedenen externen Speichervorrichtungen zu lesen oder in diese zu schreiben. In mindestens einer Ausführungsform weist die Speicherkreuzschiene 3616 eine Verbindung mit der Speicherschnittstelle 3618 auf, um mit der E/A-Einheit 3604 zu kommunizieren, sowie eine Verbindung mit einer lokalen Instanz des Parallelprozessorspeichers 3622, was es den Verarbeitungseinheiten innerhalb der unterschiedlichen Verarbeitungscluster 3614A-3614N ermöglicht, mit Systemspeicher oder anderem Speicher zu kommunizieren, der nicht lokal zu der Parallelverarbeitungseinheit 3602 ist. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 3616 virtuelle Kanäle verwenden, um Verkehrsströme zwischen Clustern 3614A-3614N und Partitionseinheiten 3620A-3620N zu trennen.
  • In mindestens einer Ausführungsform können mehrere Instanzen der Parallelverarbeitungseinheit 3602 auf einer einzigen Add-in-Karte bereitgestellt sein, oder mehrere Erweiterungskarten können miteinander verbunden sein. In mindestens einer Ausführungsform können verschiedene Instanzen der Parallelverarbeitungseinheit 3602 so konfiguriert sein, dass sie auch dann zusammenarbeiten, wenn die verschiedenen Instanzen eine unterschiedliche Anzahl von Verarbeitungskernen, unterschiedliche Mengen an lokalem Parallelprozessorspeicher und/oder andere Konfigurationsunterschiede aufweisen. Zum Beispiel können in mindestens einer Ausführungsform einige Instanzen der Parallelverarbeitungseinheit 3602 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 3602 oder des Parallelprozessors 3600 einbeziehen, in einer Vielfalt von Konfigurationen und Formfaktoren implementiert sein, einschließlich unter anderem Desktop-, Laptop- oder tragbarer Personalcomputer, Server, Arbeitsstationen, Spielekonsolen und/oder eingebetteter Systeme.
  • 36B ist ein Blockdiagramm eines Verarbeitungsclusters 3614 innerhalb einer Parallelverarbeitungseinheit gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist ein Verarbeitungscluster eine Instanz eines der Verarbeitungscluster 3614A-3614N aus 36A. In mindestens einer Ausführungsform kann der Verarbeitungscluster 3614 so konfiguriert sein, dass er viele Threads parallel ausführt, wobei sich der Begriff „Thread“ auf eine Instanz eines bestimmten Programms bezieht, das auf einem bestimmten Satz von Eingabedaten ausgeführt wird. In mindestens einer Ausführungsform werden Single-Instruction-Multiple-Data-(SIMD-)Anweisungsausgabetechniken (Single-Instruction, Multiple-Data) 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 Single-Instruction-Multiple-Thread-(SIMT-)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 innerhalb jedes der Verarbeitungscluster ausgibt.
  • In mindestens einer Ausführungsform kann die Operation des Verarbeitungsclusters 3614 über einen Pipelinemanager 3632 gesteuert werden, der die Verarbeitungs-Tasks auf die SIMT-Parallelprozessoren verteilt. In mindestens einer Ausführungsform empfängt der Pipelinemanager 3632 Anweisungen von dem Planer 3610 aus 36A und verwaltet die Ausführung dieser Anweisungen über einen Grafikmultiprozessor 3634 und/oder eine Textureinheit 3636. In mindestens einer Ausführungsform ist der Grafikmultiprozessor 3634 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 3614 beinhaltet sein. In mindestens einer Ausführungsform können eine oder mehrere Instanzen des Grafikmultiprozessors 3634 innerhalb eines Verarbeitungsclusters 3614 beinhaltet sein. In mindestens einer Ausführungsform kann der Grafikmultiprozessor 3634 Daten verarbeiten und eine Datenkreuzschiene 3640 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 Pipelinemanager 3632 die Verteilung von verarbeiteten Daten erleichtern, indem er Ziele für zu verteilende verarbeitete Daten über die Datenkreuzschiene 3640 vorgibt.
  • In mindestens einer Ausführungsform kann jeder Grafik-Multiprozessor 3634 innerhalb des Verarbeitungsclusters 3614 einen identischen Satz funktionaler Ausführungslogik beinhalten (z. B. arithmetische Logikeinheiten, Lastspeichereinheiten usw.). In mindestens einer Ausführungsform kann die funktionale Ausführungslogik in einer Pipeline dazu konfiguriert sein, dass neue Anweisungen ausgegeben werden können, bevor vorherige Anweisungen abgeschlossen sind. In mindestens einer Ausführungsform unterstützt die funktionale Ausführungslogik eine Vielfalt von Operationen, darunter Ganzzahl- und Gleitkommaarithmetik, Vergleichsoperationen, boolesche Operationen, Bitverschiebung und die Berechnung verschiedener algebraischer Funktionen. In mindestens einer Ausführungsform kann dieselbe Hardware mit Funktionseinheiten genutzt werden, um verschiedene Operationen auszuführen, und es kann jede beliebige Kombination von Funktionseinheiten vorhanden sein.
  • In mindestens einer Ausführungsform bilden die an den Verarbeitungscluster 3614 übertragenen Anweisungen einen Thread. In mindestens einer Ausführungsform ist ein Satz von Threads, der über einen Satz von Parallelverarbeitungs-Engines ausgeführt wird, 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 3634 zugewiesen sein. In mindestens einer Ausführungsform kann eine Thread-Gruppe weniger Threads beinhalten als eine Anzahl von Verarbeitungs-Engines innerhalb des Grafikmultiprozessors 3634. 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 Grafikmultiprozessors 3634. In mindestens einer Ausführungsform kann, wenn eine Thread-Gruppe mehr Threads beinhaltet als die Anzahl der Verarbeitungs-Engines innerhalb des Grafik-Multiprozessors 3634, die Verarbeitung über aufeinander folgende Taktzyklen erfolgen. In mindestens einer Ausführungsform können mehrere Thread-Gruppen gleichzeitig auf einem Grafik-Multiprozessor 3634 ausgeführt werden.
  • In mindestens einer Ausführungsform beinhaltet der Grafik-Multiprozessor 3634 einen internen Cache-Speicher, um Lade- und Speicheroperationen durchzuführen. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 3634 auf einen internen Cache verzichten und einen Cache-Speicher (z. B. L1-Cache 3648) innerhalb des Verarbeitungsclusters 3614 verwenden. In mindestens einer Ausführungsform hat jeder Grafikmultiprozessor 3634 auch Zugriff auf L2-Caches innerhalb von Partitionseinheiten (z. B. die Partitionseinheiten 3620A-3620N aus 36A), die von allen Verarbeitungsclustern 3614 gemeinsam genutzt werden, und kann verwendet werden, um Daten zwischen Threads zu übertragen. In mindestens einer Ausführungsform kann der Grafikmultiprozessor 3634 auch auf den chipexternen globalen Speicher zugreifen, der einen oder mehrere von dem lokalen Parallelprozessorspeicher und/oder dem Systemspeicher beinhalten kann. In mindestens einer Ausführungsform kann ein beliebiger Speicher, der zu der Parallelverarbeitungseinheit 3602 extern ist, als globaler Speicher verwendet werden. In mindestens einer Ausführungsform beinhaltet der Verarbeitungscluster 3614 mehrere Instanzen des Grafik-Multiprozessors 3634 und kann gemeinsame Anweisungen und Daten gemeinsam nutzen, die im L1-Cache 3648 gespeichert sein können.
  • In mindestens einer Ausführungsform kann jeder Verarbeitungscluster 3614 eine MMU 3645 (Speicherverwaltungseinheit) beinhalten, die so konfiguriert ist, dass sie virtuelle Adressen physischen Adressen zuordnet. In mindestens einer Ausführungsform können sich eine oder mehrere Instanzen der MMU 3645 innerhalb der Speicherschnittstelle 3618 aus 36A befinden. In mindestens einer Ausführungsform beinhaltet die MMU 3645 einen Satz von Seitentabelleneinträgen (page table entries - PTEs), der dazu verwendet wird, eine virtuelle Adresse einer physischen Adresse einer Kachel zuzuordnen, sowie optional einen Cache-Zeilenindex. In mindestens einer Ausführungsform kann die MMU 3645 Adressübersetzungspuffer (translation lookaside buffers - TLB) oder Caches beinhalten, die sich innerhalb des Grafik-Multiprozessors 3634 oder des L1-Caches 3648 oder des Verarbeitungsclusters 3614 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 3614 so konfiguriert sein, dass jeder Grafikmultiprozessor 3634 mit einer Textureinheit 3636 gekoppelt ist, um Texturzuordnungsoperationen durchzuführen, z. B. Bestimmen von Texturmusterpositionen, 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 3634 gelesen und je nach Bedarf aus einem L2-Cache, dem lokalen Parallelprozessorspeicher oder dem Systemspeicher abgerufen. In mindestens einer Ausführungsform gibt jeder Grafikmultiprozessor 3634 verarbeitete Aufgaben an die Datenkreuzschiene 3640 aus, um verarbeitete Aufgaben einem anderen Verarbeitungscluster 3614 zur weiteren Verarbeitung bereitzustellen oder eine verarbeitete Aufgabe über die Speicherkreuzschiene 3616 in einem L2-Cache, einem lokalen Parallelprozessorspeicher oder einem Systemspeicher zu speichern. In mindestens einer Ausführungsform ist eine Vorrasteroperationseinheit (pre-raster operations unit-„preROP“) 3642 konfiguriert, um Daten von dem Grafikmultiprozessor 3634 zu empfangen und um Daten an ROP-Einheiten zu leiten, die sich bei Partitionseinheiten befinden können, wie hierin beschrieben (z. B. die Partitionseinheiten 3620A-3620N aus 36A). In mindestens einer Ausführungsform kann die preROP-Einheit 3642 Optimierungen für die Farbmischung durchführen, Pixelfarbdaten organisieren und Adressübersetzungen vornehmen.
  • Die Inferenz- und/oder Trainingslogik 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hierin in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 in dem Grafikverarbeitungscluster 3614 für Inferenz- oder Vorhersageoperationen mindestens teilweise basierend auf Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • 36C zeigt einen Grafik-Multiprozessor 3634 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der Grafik-Multiprozessor 3634 mit dem Pipelinemanager 3632 des Verarbeitungsclusters 3614 gekoppelt. In mindestens einer Ausführungsform verfügt der Grafik-Multiprozessor 3634 über eine Ausführungspipeline, die unter anderem einen Anweisungscache 3652, eine Anweisungseinheit 3654, eine Adresszuordnungseinheit 3656, eine Registerdatei 3658, einen oder mehrere Universal-Grafikverarbeitungseinheit(GPGPU)-Kerne 3662 und eine oder mehrere Lade-/Speichereinheiten 3666 beinhaltet, wobei eine oder mehrere Lade-/Speichereinheiten 3666 Lade-/Speicheroperationen zum Laden/Speichern von Anweisungen durchführen können, die der Durchführung einer Operation entsprechen. Die GPGPU-Kerne 3662 und die Lade-/Speichereinheiten 3666 sind in mindestens einer Ausführungsform über eine Speicher- und Cache-Verbindung 3668 mit dem Cache-Speicher 3672 und dem gemeinsamen Speicher 3670 verbunden.
  • In mindestens einer Ausführungsform empfängt der Anweisungscache 3652 einen Strom von auszuführenden Anweisungen vom Pipeline-Manager 3632. In mindestens einer Ausführungsform werden die Anweisungen im Anweisungs-Cache 3652 zwischengespeichert und von einer Anweisungseinheit 3654 zur Ausführung versendet. In mindestens einer Ausführungsform kann die Anweisungseinheit 3654 Anweisungen als Thread-Gruppen (z. B. Verwerfungen, Wellenfronten, Wellen) versenden, wobei jeder Thread der Thread-Gruppe einer anderen Ausführungseinheit innerhalb der GPGPU-Kerne 3662 zugewiesen ist. In mindestens einer Ausführungsform kann eine Anweisung auf einen lokalen, gemeinsam genutzten oder globalen Adressraum zugreifen, indem sie eine Adresse innerhalb eines einheitlichen Adressraums angibt. In mindestens einer Ausführungsform kann die Adresszuordnungseinheit 3656 verwendet werden, um Adressen in einem vereinheitlichten Adressraum in eine eindeutige Speicheradresse zu übersetzen, auf die die Lade-/Speichereinheiten 3666 zugreifen können.
  • In mindestens einer Ausführungsform stellt die Registerbank 3658 einen Satz von Registern für funktionelle Einheiten des Grafikmultiprozessors 3634 bereit. In mindestens einer Ausführungsform stellt die Registerbank 3658 einen temporären Datenspeicher für Operanden bereit, die mit Datenwegen von funktionellen Einheiten (z. B. GPGPU-Kernen 3662, Lade-/Speichereinheiten 3666) des Grafikmultiprozessors 3634 verbunden sind. In mindestens einer Ausführungsform ist die Registerbank 3658 derart zwischen den einzelnen funktionellen Einheiten aufgeteilt, dass jeder funktionellen Einheit ein dedizierter Abschnitt der Registerbank 3658 zugewiesen ist. In mindestens einer Ausführungsform ist die Registerdatei 3658 auf verschiedene Warps (die als Wellenfronten und/oder Wellen bezeichnet werden können) aufgeteilt, die vom Grafikmultiprozessor 3634 ausgeführt werden.
  • In mindestens einer Ausführungsform können die GPGPU-Kerne 3662 jeweils Gleitkommaeinheiten (FPUs) und/oder ganzzahlige arithmetische Logikeinheiten (ALUs) beinhalten, die zur Ausführung von Anweisungen des Grafikmultiprozessors 3634 verwendet werden. Die GPGPU-Kerne 3662 können sich in mindestens einer Ausführungsform in ihrer Architektur ähneln oder unterscheiden. In mindestens einer Ausführungsform beinhaltet ein erster Abschnitt der GPGPU-Kerne 3662 eine FPU mit einfacher Genauigkeit und eine Ganzzahl-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 Grafikmultiprozessor 3634 zusätzlich eine oder mehrere Festfunktions- oder Sonderfunktionseinheiten beinhalten, um spezifische Funktionen wie das Kopieren von Rechtecken oder Pixel-Blending-Operationen durchzuführen. In mindestens einer Ausführungsform kann einer oder können mehrere der GPGPU-Kerne 3662 auch eine feste oder spezielle Funktionslogik beinhalten.
  • In mindestens einer Ausführungsform beinhalten die GPGPU-Kerne 3662 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 3662 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 oder automatisch bei der Ausführung von Programmen erzeugt werden, die für SPMD- oder SIMT-Architekturen (Single Program Multiple Data) geschrieben und kompiliert wurden. In mindestens einer Ausführungsform können mehrere Threads eines für ein SIMT-Ausführungsmodell konfigurierten Programms über eine einzelne SIMD-Anweisung ausgeführt werden. Zum Beispiel können in mindestens einer Ausführungsform acht SIMT-Threads, die gleiche oder ähnliche Operationen durchführen, parallel über eine einzelne SIMD8-Logikeinheit ausgeführt werden.
  • In mindestens einer Ausführungsform ist die Speicher- und Cache-Verbindung 3668 ein Verbindungsnetzwerk, das jede Funktionseinheit des Grafik-Multiprozessors 3634 mit der Registerdatei 3658 und dem gemeinsamen Speicher 3670 verbindet. In mindestens einer Ausführungsform ist die Speicher- und Cache-Verbindung 3668 eine Kreuzschienen-Verbindung, die es der Lade-/Speichereinheit 3666 ermöglicht, Lade- und Speicheroperationen zwischen dem gemeinsam genutzten Speicher 3670 und der Registerbank 3658 zu implementieren. In mindestens einer Ausführungsform kann die Registerbank 3658 mit der gleichen Frequenz wie die GPGPU-Kerne 3662 arbeiten, sodass die Datenübertragung zwischen den GPGPU-Kernen 3662 und der Registerbank 3658 eine sehr geringe Latenz aufweisen kann. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher 3670 verwendet werden, um die Kommunikation zwischen Threads zu ermöglichen, die auf funktionellen Einheiten innerhalb des Grafikmultiprozessors 3634 ausgeführt werden. In mindestens einer Ausführungsform kann der Cache-Speicher 3672 beispielsweise als Daten-Cache verwendet werden, um Texturdaten, die zwischen Funktionseinheiten und der Textureinheit 3636 übertragen werden, zwischenzuspeichern. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher 3670 auch als programmverwalteter Cache verwendet werden. In mindestens einer Ausführungsform können Threads, die auf den GPGPU-Kernen 3662 ausgeführt werden, zusätzlich zu den automatisch zwischengespeicherten Daten, die innerhalb des Cache-Speichers 3672 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 mit Host-/Prozessorkernen gekoppelt, um Grafikoperationen, Operationen des maschinellen Lernens, Musteranalyseoperationen und verschiedene Universal-GPU(GPGPU)-Funktionen 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-Verbindung) mit dem Host-Prozessor (den Prozessorkernen) kommunikativ gekoppelt sein. In mindestens einer Ausführungsform kann eine GPU in einem Gehäuse oder Chip als Kerne integriert sein und kommunikativ über einen internen Prozessorbus/eine Zusammenschaltung, die intern zu einem Gehäuse oder Chip ist, an Kerne gekoppelt sein. In mindestens einer Ausführungsform können die Prozessorkerne unabhängig von einer Weise, auf welche eine GPU verbunden ist, einer derartigen GPU Arbeit in Form von Sequenzen von Befehlen/Anweisungen 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 1815 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenz- und/oder Trainingslogik 1815 werden hier in Verbindung mit 18A und/oder 18B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 1815 in dem Grafikmultiprozessor 3634 für Inferenz- oder Vorhersageoperationen mindestens teilweise basierend auf Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • BERECHNUNG ALLGEMEIN
  • Die folgenden Figuren legen ohne Einschränkung beispielhafte Softwarekonstrukte innerhalb der allgemeinen Berechnung dar, die zur Implementierung mindestens einer Ausführungsform verwendet werden können.
  • 37 veranschaulicht einen Softwarestapel einer Programmierplattform gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist eine Programmierplattform eine Plattform zum Einsetzen von Hardware auf einem Computersystem, um Berechnungstasks zu beschleunigen. In mindestens einer Ausführungsform kann eine Programmierplattform für Softwareentwickler durch Bibliotheken, Compilerdirektiven und/oder Erweiterungen von Programmiersprachen zugänglich sein. In mindestens einer Ausführungsform kann eine Programmierplattform CUDA, Radeon Open Compute Platform („ROCm“), OpenCL (OpenCL™ wird von der Khronos-Gruppe entwickelt), SYCL oder Intel One API sein, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform stellt ein Softwarestapel 3700 einer Programmierplattform eine Ausführungsumgebung für eine Anwendung 3701 bereit. In mindestens einer Ausführungsform kann die Anwendung 3701 eine beliebige Computersoftware beinhalten, die auf dem Softwarestapel 3700 gestartet werden kann. In mindestens einer Ausführungsform kann die Anwendung 3701 eine Anwendung für künstliche Intelligenz („KI“)/maschinelles Lernen („ML“), eine Hochleistungsrechenanwendung (high performance computing - „HPC“), eine virtuelle Desktop-Infrastruktur („VDI“) oder eine Rechenzentrumsarbeitslast beinhalten, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform laufen die Anwendung 3701 und der Softwarestapel 3700 auf Hardware 3707. Die Hardware 3707 kann in mindestens einer Ausführungsform eine oder mehrere GPUs, CPUs, FPGAs, Kl-Engines und/oder andere Arten von Rechenvorrichtungen beinhalten, die eine Programmierplattform unterstützen. In mindestens einer Ausführungsform, wie etwa bei CUDA, kann der Softwarestapel 3700 herstellerspezifisch und nur mit Vorrichtungen von (einem) konkreten Hersteller(n) kompatibel sein. In mindestens einer Ausführungsform, wie etwa bei OpenCL, kann der Softwarestapel 3700 mit Vorrichtungen von verschiedenen Herstellern verwendet werden. In mindestens einer Ausführungsform beinhaltet die Hardware 3707 einen Host, der mit einem oder mehreren Vorrichtungen verbunden ist, auf die zugegriffen werden kann, um Berechnungstasks über Aufrufe einer Anwendungsprogrammierschnittstelle (application programming interface - „API“) auszuführen. Eine Vorrichtung innerhalb der Hardware 3707 kann, ohne darauf beschränkt zu sein, eine GPU, ein FPGA, eine Kl-Engine oder eine andere Rechenvorrichtung und ihren Speicher beinhalten (kann aber auch eine CPU beinhalten), im Gegensatz zu einem Host innerhalb der Hardware 3707, der in mindestens einer Ausführungsform eine CPU und ihren Speicher beinhalten kann (aber auch eine Rechenvorrichtung beinhalten kann), ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform beinhaltet der Softwarestapel 3700 einer Programmierplattform ohne Einschränkung eine Anzahl von Bibliotheken 3703, eine Laufzeit 3705 und einen Vorrichtungskerneltreiber 3706. Jede der Bibliotheken 3703 kann in mindestens einer Ausführungsform Daten und Programmiercode beinhalten, die durch Computerprogramme verwendet und während der Softwareentwicklung eingesetzt werden können. In mindestens einer Ausführungsform können die Bibliotheken 3703 vorgefertigten Code und Teilroutinen, Klassen, Werte, Typspezifikationen, Konfigurationsdaten, Dokumentation, Hilfedaten und/oder Nachrichtenvorlagen beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform beinhalten die Bibliotheken 3703 Funktionen, die für die Ausführung auf einer oder mehreren Arten von Vorrichtungen optimiert sind. In mindestens einer Ausführungsform können die Bibliotheken 3703 Funktionen zum Durchführen von mathematischen Operationen, tiefem Lernen und/oder anderen Arten von Operationen auf Vorrichtungen beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform sind Bibliotheken 3803 entsprechenden API 3802 zugeordnet, die eine oder mehrere API beinhalten können, die in Bibliotheken 3803 implementierte Funktionen offenlegen.
  • In mindestens einer Ausführungsform ist die Anwendung 3701 als Quellcode geschrieben, der in ausführbaren Code kompiliert wird, wie nachstehend in Verbindung mit 42 ausführlicher erörtert wird. In mindestens einer Ausführungsform kann der ausführbare Code der Anwendung 3701 mindestens teilweise auf einer Ausführungsumgebung laufen, die vom Softwarestapel 3700 bereitgestellt wird. In mindestens einer Ausführungsform kann während der Ausführung der Anwendung 3701 Code erreicht werden, der auf einer Vorrichtung im Gegensatz zu einem Host laufen muss. In einem solchen Fall kann die Laufzeit 3705 in mindestens einer Ausführungsform aufgerufen werden, um erforderlichen Code auf eine Vorrichtung zu laden und zu starten. In mindestens einer Ausführungsform kann die Laufzeit 3705 ein beliebiges technisch machbares Laufzeitsystem beinhalten, das die Ausführung der Anwendung S01 unterstützen kann.
  • In mindestens einer Ausführungsform ist die Laufzeit 3705 als eine oder mehrere Laufzeitbibliotheken implementiert, die entsprechenden APIs zugeordnet sind, die als API(s) 3704 dargestellt sind. Eine oder mehrere solcher Laufzeitbibliotheken können in mindestens einer Ausführungsform ohne Einschränkung unter anderem Funktionen für die Speicherverwaltung, die Ausführungssteuerung, die Vorrichtungsverwaltung, die Fehlerhandhabung und/oder die Synchronisation beinhalten. In mindestens einer Ausführungsform können die Speicherverwaltungsfunktionen Funktionen zum Zuweisen, Freigeben und Kopieren von Vorrichtungsspeicher sowie zum Übertragen von Daten zwischen Host-Speicher und Vorrichtungsspeicher beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform können die Ausführungssteuerfunktionen Funktionen zum Starten einer Funktion (manchmal als „Kernel“ bezeichnet, wenn eine Funktion eine von einem Host aufrufbare globale Funktion ist) auf einer Vorrichtung beinhalten und Attributwerte in einem Puffer setzen, der durch eine Laufzeitbibliothek für eine bestimmte Funktion gepflegt wird, die auf einer Vorrichtung ausgeführt werden soll, ohne darauf beschränkt zu sein.
  • Laufzeitbibliotheken und entsprechende API(s) 3704 können in mindestens einer Ausführungsform auf eine beliebige technisch machbare Weise implementiert sein. In mindestens einer Ausführungsform kann eine (oder eine beliebige Anzahl von) API einen Satz von Funktionen einer niedrigen Ebene für eine feingranulare Steuerung einer Vorrichtung bereitstellen, während eine andere (oder eine beliebige Anzahl von) API einen Satz solcher Funktionen einer höheren Ebene offenlegen kann. In mindestens einer Ausführungsform kann eine Laufzeit-API einer hohen Ebene auf einer API einer niedrigen Ebene aufgebaut sein. In mindestens einer Ausführungsform können eine oder mehrere Laufzeit-APIs sprachspezifische APIs sein, die auf einer sprachunabhängigen Laufzeit-API aufgesetzt sind.
  • In mindestens einer Ausführungsform ist der Vorrichtungskerntreiber 3706 so konfiguriert, dass er die Kommunikation mit einer zugrunde liegenden Vorrichtung ermöglicht. In mindestens einer Ausführungsform kann der Vorrichtungskerneltreiber 3706 Funktionalitäten einer niedrigen Ebene bereitstellen, auf die APIs, wie etwa die API(s) 3704 und/oder andere Software, zurückgreifen. In mindestens einer Ausführungsform kann der Vorrichtungskerneltreiber 3706 konfiguriert sein, um Zwischendarstellungs(lntermediate Representation - „IR“)-Code zur Laufzeit in Binärcode zu kompilieren. Für CUDA kann der Vorrichtungskerneltreiber 3706 in mindestens einer Ausführungsform IR-Code zur parallelen Thread-Ausführung (Parallel Thread Execution - „PTX“), der nicht hardwarespezifisch ist, zur Laufzeit in Binärcode für eine bestimmtes Zielvorrichtung kompilieren (mit Zwischenspeichern des kompilierten Binärcodes), was manchmal auch als „Finalisieren“ von Code bezeichnet wird. Dies kann in mindestens einer Ausführungsform zulassen, dass finalisierter Code auf einer Zielvorrichtung läuft, der möglicherweise nicht existiert hat, als der Quellcode ursprünglich in PTX-Code kompiliert wurde. Alternativ kann in mindestens einer Ausführungsform der Vorrichtungsquellcode offline in Binärcode kompiliert werden, ohne dass es erforderlich ist, dass der Vorrichtungskerneltreiber 3706 den IR-Code während der Laufzeit kompiliert.
  • 38 veranschaulicht eine CUDA-Implementierung eines Softwarestapels 3700 der 37 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet ein CUDA-Softwarestapel 3800, auf dem eine Anwendung 3801 gestartet werden kann, CUDA-Bibliotheken 3803, eine CUDA-Laufzeit 3805, einen CUDA-Treiber 3807 und einen Vorrichtungskerneltreiber 3808. In mindestens einer Ausführungsform wird der CUDA-Softwarestapel 3800 auf Hardware 3809 ausgeführt, die eine GPU beinhalten kann, die CUDA unterstützt und von NVIDIA Corporation, Santa Clara, Kalifornien entwickelt wird.
  • In mindestens einer Ausführungsform können die Anwendung 3801, die CUDA-Laufzeit 3805 und der Vorrichtungskerneltreiber 3808 ähnliche Funktionalitäten wie die Anwendung 3701, die Laufzeit 3705 bzw. der Vorrichtungskerneltreiber 3706 durchführen, die vorstehend in Verbindung mit 37 beschrieben wurden. In mindestens einer Ausführungsform beinhaltet der CUDA-Treiber 3807 eine Bibliothek (libcuda.so), die eine CUDA-Treiber-API 3806 implementiert. Ähnlich einer CUDA-Laufzeit-API 3804, die durch eine CUDA-Laufzeitbibliothek (cudart) implementiert wird, kann die CUDA-Treiber-API 3806 in mindestens einer Ausführungsform ohne Einschränkung unter anderem Funktionen für Speicherverwaltung, Ausführungssteuerung, Vorrichtungsverwaltung, Fehlerbehandlung, Synchronisation und/oder Grafikinteroperabilität offenlegen. In mindestens einer Ausführungsform unterscheidet sich die CUDA-Treiber-API 3806 von der CUDA-Laufzeit-API 3804 darin, dass die CUDA-Laufzeit-API 3804 die Vorrichtungscodeverwaltung vereinfacht, indem sie implizite Initialisierung, Kontextverwaltung (analog zu einem Prozess) und Modulverwaltung (analog zu dynamisch geladenen Bibliotheken) bereitstellt. Im Gegensatz zur CUDA-Laufzeit-API 3804 auf hoher Ebene ist die CUDA-Treiber-API 3806 eine API auf niedriger Ebene, die in mindestens einer Ausführungsform eine feinkörnigere Steuerung einer Vorrichtung bereitstellt, insbesondere in Bezug auf Kontexte und Modulladen. In mindestens einer Ausführungsform kann die CUDA-Treiber-API 3806 Funktionen für die Kontextverwaltung offenlegen, die nicht durch die CUDA-Laufzeit-API 3804 offengelegt werden. In mindestens einer Ausführungsform ist die CUDA-Treiber-API 3806 auch sprachunabhängig und unterstützt z. B. OpenCL zusätzlich zur CUDA-Laufzeit-API 3804. Ferner können in mindestens einer Ausführungsform Entwicklungsbibliotheken, einschließlich der CUDA-Laufzeit 3805, als von Treiberkomponenten separat betrachtet werden, einschließlich des Benutzermodus-CUDA-Treibers 3807 und des Kernelmodus-Vorrichtungstreibers 3808 (manchmal auch als „Anzeige“-Treiber bezeichnet).
  • In mindestens einer Ausführungsform können CUDA-Bibliotheken 3803 unter anderem mathematische Bibliotheken, Deep-Learning-Bibliotheken, parallele Algorithmenbibliotheken und/oder Signal-/Rahmen-/Videoverarbeitungsbibliotheken beinhalten, die von parallelen Rechenanwendungen wie der Anwendung 3801 genutzt werden können. In mindestens einer Ausführungsform können die CUDA-Bibliotheken 3803 mathematische Bibliotheken beinhalten, wie etwa unter anderem eine cuBLAS-Bibliothek, die eine Implementierung von Basic Linear Algebra Subprograms („BLAS“) zum Durchführen linearer Algebra-Operationen ist, eine cuFFT-Bibliothek zum Berechnen schneller Fourier-Transformationen (fast Fourier transforms - „FFTs“) und eine cuRAND-Bibliothek zur Generierung von Zufallszahlen. In mindestens einer Ausführungsform können die CUDA-Bibliotheken 3803 Deep-Learning-Bibliotheken beinhalten, wie etwa unter anderem eine cuDNN-Bibliothek von Primitiven für tiefe neuronale Netze und eine TensorRT-Plattform für Hochleistungs-Deep-Learning-Inferenz.
  • 39 veranschaulicht eine ROCm-lmplementierung eines Softwarestapels 3700 der 37 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet ein ROCm-Softwarestapel 3900, auf dem eine Anwendung 3901 gestartet werden kann, eine Sprachlaufzeit 3903, eine Systemlaufzeit 3905, einen Thunk 3907, einen ROCm-Kerneltreiber 3908 und einen Vorrichtungskerneltreiber 3909. In mindestens einer Ausführungsform wird der ROCm-Softwarestapel 3900 auf Hardware 3910 ausgeführt, die eine GPU beinhalten kann, die ROCm unterstützt und von AMD Corporation, Santa Clara, Kalifornien entwickelt wird.
  • In mindestens einer Ausführungsform kann die Anwendung 3901 ähnliche Funktionalitäten wie die Anwendung 3701 durchführen, die vorstehend in Verbindung mit 37 erörtert wurde. Außerdem können die Sprachlaufzeit 3903 und die Systemlaufzeit 3905 in mindestens einer Ausführungsform ähnliche Funktionalitäten wie die vorstehend in Verbindung mit 37 erörterte Laufzeit 3705 durchführen. In mindestens einer Ausführungsform unterscheiden sich die Sprachlaufzeit 3903 und die Systemlaufzeit 3905 darin, dass die Systemlaufzeit 3905 eine sprachunabhängige Laufzeit ist, die eine ROCr-Systemlaufzeit-API 3904 implementiert und eine Laufzeit-API mit heterogener Systemarchitektur (Heterogeneous System Architecture - „HAS“) verwendet. Die HAS-Laufzeit-API ist in mindestens einer Ausführungsform eine schlanke Benutzermodus-API, die Schnittstellen für den Zugriff auf und die Interaktion mit einer AMD-GPU offenlegt, die unter anderem Funktionen für die Speicherverwaltung, die Ausführungssteuerung über den architekturdefinierten Versand von Kerneln, die Fehlerbehandlung, System- und Agenteninformationen sowie die Initialisierung und das Herunterfahren der Laufzeit beinhaltet. Im Gegensatz zur Systemlaufzeit 3905 ist die Sprachlaufzeit 3903 in mindestens einer Ausführungsform eine Implementierung einer sprachspezifischen Laufzeit-API 3902, die auf der ROCr-Systemlaufzeit-API 3904 geschichtet ist. In mindestens einer Ausführungsform kann die Sprachlaufzeit-API unter anderem eine Sprachlaufzeit-API für Heterogeneous Compute Interface for Portability („HIP“), eine Sprachlaufzeit-API für Heterogeneous Compute Compiler („HCC“) oder eine OpenCL-API beinhalten, ohne darauf beschränkt zu sein. Die HIP-Sprache ist insbesondere eine Erweiterung der Programmiersprache C++ mit funktional ähnlichen Versionen von CUDA-Mechanismen, und in mindestens einer Ausführungsform beinhaltet eine HIP-Sprachen-Laufzeit-API Funktionen, die denen der CUDA-Laufzeit-API 3804 ähneln, die vorstehend in Verbindung mit 38 erörtert wurde, wie etwa unter anderem Funktionen zur Speicherverwaltung, Ausführungssteuerung, Vorrichtungsverwaltung, Fehlerbehandlung und Synchronisation.
  • In mindestens einer Ausführungsform ist der Thunk (ROCt) 3907 eine Schnittstelle, die verwendet werden kann, um mit dem zugrunde liegenden ROCm-Treiber 3908 zu interagieren. In mindestens einer Ausführungsform ist der ROCm-Treiber 3908 ein ROCk-Treiber, der eine Kombination aus einem AMDGPU-Treiber und einem HAS-Kernel-Treiber (amdkfd) ist. In mindestens einer Ausführungsform ist der AMDGPU-Treiber ein von AMD entwickelter Vorrichtungskerneltreiber für GPU, der ähnliche Funktionen wie der Vorrichtungskerneltreiber 3706 durchführt, der vorstehend in Verbindung mit 37 erörtert wurde. In mindestens einer Ausführungsform ist der HAS-Kernel-Treiber ein Treiber, der es unterschiedlichen Arten von Prozessoren erlaubt, Systemressourcen effektiver über Hardware-Merkmale gemeinsam zu nutzen.
  • In mindestens einer Ausführungsform können verschiedene Bibliotheken (nicht gezeigt) im ROCm-Softwarestapel 3900 oberhalb der Sprachlaufzeit 3903 beinhaltet sein und eine Ähnlichkeit der Funktionalität zu den CUDA-Bibliotheken 3803 bereitstellen, die vorstehend in Verbindung mit 38 erörtert wurden. In mindestens einer Ausführungsform können verschiedene Bibliotheken mathematische, Deep-Learning- und/oder andere Bibliotheken beinhalten, wie etwa unter anderem eine hipBLAS-Bibliothek, die Funktionen ähnlich denen von CUDA cuBLAS implementiert, eine rocFFT-Bibliothek zum Berechnen von FFT, die ähnlich CUDA cuFFT ist.
  • 40 veranschaulicht eine OpenCL-Implementierung eines Softwarestapels 3700 der 37 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet ein OpenCL-Softwarestapel 4000, auf dem eine Anwendung 4001 gestartet werden kann, ein OpenCL-Framework 4005, eine OpenCL-Laufzeit 4006 und einen Treiber 4007. In mindestens einer Ausführungsform wird der OpenCL-Softwarestapel 4000 auf Hardware 3809 ausgeführt, die nicht herstellerspezifisch ist. Da OpenCL durch Vorrichtungen unterstützt wird, die von verschiedenen Herstellern entwickelt wurden, können in mindestens einer Ausführungsform spezifische OpenCL-Treiber erforderlich sein, um mit Hardware von solchen Herstellern zusammenzuwirken.
  • In mindestens einer Ausführungsform können die Anwendung 4001, die OpenCL-Laufzeit 4006, der Vorrichtungskerneltreiber 4007 und die Hardware 4008 ähnliche Funktionalitäten wie die Anwendung 3701, die Laufzeit 3705, der Vorrichtungskerneltreiber 3706 bzw. die Hardware 3707 durchführen, die vorstehend in Verbindung mit 37 beschrieben wurden. In mindestens einer Ausführungsform beinhaltet die Anwendung 4001 ferner einen OpenCL-Kernel 4002 mit Code, der auf einer Vorrichtung ausgeführt werden soll.
  • In mindestens einer Ausführungsform definiert OpenCL eine „Plattform“, die es einem Host erlaubt, mit einem Host verbundene Vorrichtungen zu steuern. In mindestens einer Ausführungsform stellt ein OpenCL-Framework eine Plattformschicht-API und eine Laufzeit-API bereit, die als Plattform-API 4003 und Laufzeit-API 4005 gezeigt sind. In mindestens einer Ausführungsform verwendet die Laufzeit-API 4005 Kontexte, um die Ausführung von Kerneln auf Vorrichtungen zu verwalten. In mindestens einer Ausführungsform kann jede identifizierte Vorrichtung einem jeweiligen Kontext zugeordnet sein, den die Laufzeit-API 4005 verwenden kann, für diese Vorrichtung um unter anderem Befehlswarteschlangen, Programmobjekte und Kernelobjekte zu verwalten und Speicherobjekte gemeinsam zu nutzen. In mindestens einer Ausführungsform legt die Plattform-API 4003 Funktionen offen, die unter anderem die Verwendung von Vorrichtungskontexten zum Auswählen und Initialisieren von Vorrichtungen, zum Übermitteln von Arbeit an Vorrichtungen über Befehlswarteschlangen und zum Ermöglichen der Datenübertragung zu und von Vorrichtungen zulassen. Darüber hinaus stellt das OpenCL-Framework in mindestens einer Ausführungsform verschiedene integrierte Funktionen (nicht gezeigt) bereit, einschließlich unter anderem mathematischer Funktionen, relationaler Funktionen und Bildverarbeitungsfunktionen.
  • In mindestens einer Ausführungsform ist auch ein Compiler 4004 im OpenCL-Framework 4005 beinhaltet. Quellcode kann in mindestens einer Ausführungsform offline vor der Ausführung einer Anwendung oder online während der Ausführung einer Anwendung kompiliert werden. Im Gegensatz zu CUDA und ROCm können OpenCL-Anwendungen in mindestens einer Ausführungsform online durch den Compiler 4004 kompiliert werden, der beinhaltet ist, um repräsentativ für eine beliebige Anzahl von Compilern zu sein, die verwendet werden kann, um Quellcode und/oder IR-Code, wie etwa Portable Intermediate Representation („SPIR-V“)-Code, in Binärcode zu kompilieren. Alternativ können in mindestens einer Ausführungsform OpenCL-Anwendungen offline kompiliert werden, bevor solche Anwendungen ausgeführt werden.
  • 41 veranschaulicht Software, die von einer Programmierplattform unterstützt wird, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist eine Programmierplattform 4104 konfiguriert, um verschiedene Programmiermodelle 4103, Middlewares und/oder Bibliotheken 4102 und Frameworks 4101 zu unterstützen, auf die eine Anwendung 4100 zurückgreifen kann. In mindestens einer Ausführungsform kann die Anwendung 4100 eine KI/ML-Anwendung sein, die in mindestens einer Ausführungsform unter Verwendung eines Deep-Learning-Frameworks wie etwa MXNet, PyTorch oder TensorFlow implementiert ist, das auf Bibliotheken wie cuDNN, NVIDIA Collective Communications Library („NCCL“) und/oder NVIDA Developer Data Loading Library („DALI“) CUDA-Bibliotheken zurückgreifen kann, um beschleunigte Berechnung auf der zugrunde liegenden Hardware bereitzustellen.
  • In mindestens einer Ausführungsform kann die Programmierplattform 4104 eine der vorstehend in Verbindung mit 33, 34 bzw. 40 beschriebenen CUDA-, ROCm- oder OpenCL-Plattformen sein. In mindestens einer Ausführungsform unterstützt die Programmierplattform 4104 mehrere Programmiermodelle 4103, die Abstraktionen eines zugrunde liegenden Rechensystems sind, das Ausdrücke von Algorithmen und Datenstrukturen zulässt. Die Programmiermodelle 4103 können in mindestens einer Ausführungsform Merkmale der zugrunde liegenden Hardware offenlegen, um die Leistungsfähigkeit zu verbessern. In mindestens einer Ausführungsform können die Programmiermodelle 4103 CUDA, HIP, OpenCL, C++ Accelerated Massive Parallelism („C++AMP“), Open Multi-Processing („OpenMP“), Open Accelerators („OpenACC“) und/oder Vulcan Compute beinhalten, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform stellen Bibliotheken und/oder Middlewares 4102 Implementierungen von Abstraktionen von Programmiermodellen 4104 bereit. In mindestens einer Ausführungsform können derartige Bibliotheken Daten und Programmiercode beinhalten, die durch Computerprogramme verwendet und während der Softwareentwicklung eingesetzt werden können. In mindestens einer Ausführungsform beinhalten solche Middlewares Software, die Dienste für Anwendungen bereitstellt, die über diejenigen hinausgehen, die von der Programmierplattform 4104 verfügbar sind. In mindestens einer Ausführungsform können die Bibliotheken und/oder Middlewares 4102 cuBLAS-, cuFFT-, cuRAND- und andere CUDA-Bibliotheken oder rocBLAS-, rocFFT-, rocRAND- und andere ROCm-Bibliotheken beinhalten, ohne darauf beschränkt zu sein. Darüber hinaus können die Bibliotheken und/oder Middlewares 4102 in mindestens einer Ausführungsform NCCL- und ROCm-Communication-Collectives-Library(„RCCL“)-Bibliotheken, die Kommunikationsroutinen für GPU bereitstellen, eine MlOpen-Bibliothek für Deep Learning-Beschleunigung und/oder eine Eigen-Bibliothek für lineare Algebra, Matrix- und Vektoroperationen, geometrische Transformationen, numerische Solver und verwandte Algorithmen beinhalten.
  • In mindestens einer Ausführungsform hängen die Anwendungs-Frameworks 4101 von den Bibliotheken und/oder Middlewares 4102 ab. In mindestens einer Ausführungsform ist jedes der Anwendungs-Frameworks 4101 ein Software-Framework, das verwendet wird, um eine Standardstruktur von Anwendungssoftware zu implementieren. Eine KI/ML-Anwendung kann in mindestens einer Ausführungsform unter Verwendung eines Frameworks, wie etwa ein Caffe-, Caffe2-, TensorFlow-, Keras-, PyTorch- oder MxNet-Deep-Learning-Framework implementiert sein.
  • 42 veranschaulicht das Kompilieren von Code zum Ausführen auf einer der Programmierplattformen der 37-40 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform empfängt ein Compiler 4201 Quellcode 4200, der sowohl Host-Code als auch Vorrichtungscode beinhaltet. In mindestens einer Ausführungsform ist der Compiler 4201 konfiguriert, um den Quellcode 4200 in einen vom Host ausführbaren Code 4202 zur Ausführung auf einem Host und in einen von der Vorrichtung ausführbaren Code 4203 zur Ausführung auf einer Vorrichtung umzuwandeln. Der Quellcode 4200 kann in mindestens einer Ausführungsform entweder offline vor der Ausführung einer Anwendung oder online während der Ausführung einer Anwendung kompiliert werden.
  • In mindestens einer Ausführungsform kann der Quellcode 4200 Code in einer beliebigen Programmiersprache beinhalten, die durch den Compiler 4201 unterstützt wird, wie etwa C++, C, Fortran usw. In mindestens einer Ausführungsform kann der Quellcode 4200 in einer Einzelquelldatei mit einer Mischung aus Host-Code und Vorrichtungscode beinhaltet sein, wobei darin Stellen des Vorrichtungscodes angegeben sind. In mindestens einer Ausführungsform kann eine Einzelquelldatei eine .cu-Datei, die CUDA-Code beinhaltet, oder eine .hip.cpp-Datei, die HIP-Code beinhaltet, sein. Alternativ kann der Quellcode 4200 in mindestens einer Ausführungsform Mehrfachquellen-Codedateien anstelle einer Einzelquelldatei beinhalten, in die Host-Code und Vorrichtungscode getrennt sind.
  • In mindestens einer Ausführungsform ist der Compiler 4201 konfiguriert, um den Quellcode 4200 in den vom Host ausführbaren Code 4202 zur Ausführung auf einem Host und in den von der Vorrichtung ausführbaren Code 4203 zur Ausführung auf einer Vorrichtung zu kompilieren. In mindestens einer Ausführungsform führt der Compiler 4201 Operationen durch, die das Parsen des Quellcodes 4200 in einen abstrakten Systembaum (abstract system tree - AST), das Durchführen von Optimierungen und das Generieren von ausführbarem Code beinhalten. In mindestens einer Ausführungsform, in der der Quellcode 4200 eine Einzelquelldatei beinhaltet, kann der Compiler 4201 den Vorrichtungscode von dem Host-Code in einer solchen Einzelquelldatei trennen, den Vorrichtungscode und den Host-Code in einen von der Vorrichtung ausführbaren Code 4203 bzw. einen vom Host ausführbaren Code 4202 kompilieren und den von der Verbindungsvorrichtung ausführbaren Code 4203 und den vom Host ausführbaren Code 4202 miteinander in einer Einzeldatei verbinden, wie nachstehend in Bezug auf 26 ausführlicher erörtert wird.
  • In mindestens einer Ausführungsform können der vom Host ausführbare Code 4202 und der von der Vorrichtung ausführbare Code 4203 in einem beliebigen geeigneten Format vorliegen, wie etwa als Binärcode und/oder IR-Code. Im Falle von CUDA kann in mindestens einer Ausführungsform der vom Host ausführbare Code 4202 nativen Objektcode beinhalten und kann der von der Vorrichtung ausführbare Code 4203 Code in einer PTX-Zwischendarstellung beinhalten. Im Falle von ROCm kann sowohl der vom Host ausführbare Code 4202 als auch der von der Vorrichtung ausführbare Code 4203 in mindestens einer Ausführungsform Ziel-Binärcode beinhalten.
  • Mindestens eine Ausführungsform der Offenbarung kann in Hinblick auf die folgenden Klauseln betrachtet werden:
    1. 1. Prozessor, umfassend:
      • eine oder mehrere Schaltungen, um ein Diagnoseergebnis aus einem trainierten statistischen Modell für ein sicheres Rechenzentrum zu erzeugen und das trainierte statistische Modell mindestens teilweise basierend auf Informationen von einem oder
      • mehreren offenen Rechenzentren und auf Protokolldaten von dem sicheren Rechenzentrum zu aktualisieren, das sich innerhalb einer sicheren Grenze befindet, die von dem sicheren Rechenzentrum gesteuert wird.
    2. 2. Prozessor nach Klausel 1, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, eine oder mehrere Korrekturmaßnahmen mindestens teilweise basierend auf dem Diagnoseergebnis zu bestimmen.
    3. 3. Prozessor nach Klausel 1, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, eine oder mehrere zukünftige Betriebsbedingungen für eine oder mehrere Komponenten des sicheren Rechenzentrums mindestens teilweise basierend auf dem Diagnoseergebnis zu bestimmen.
    4. 4. Prozessor nach Klausel 1, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, das Diagnoseergebnis an eine externe Partei bereitzustellen.
    5. 5. Prozessor nach Klausel 4, wobei das Diagnoseergebnis einer Richtlinie für sichere Rechenzentrumsdaten entspricht.
    6. 6. Prozessor nach Klausel 1, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, ein aktualisiertes trainiertes statistisches Modell zu empfangen und das aktualisierte statistische Modell mindestens teilweise basierend auf den Protokolldaten abzustimmen.
    7. 7. System nach Klausel 1, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, einer externen Partei das aktualisierte trainierte statistische Modell bereitzustellen.
    8. 8. System, umfassend:
      • einen oder mehrere Prozessoren, um ein oder mehrere Diagnoseergebnisse zu bestimmen, mindestens teilweise basierend auf einem trainierten Anwendungsmodell,
      • um homomorph verschlüsselte Protokolldaten zu empfangen, wobei die verschlüsselten Protokolldaten ein oder mehrere Merkmale aufweisen, die mindestens teilweise auf einem oder mehreren Parametern des trainierten Anwendungsmodells basieren, wobei der eine oder die mehreren Parameter einer oder mehreren Operationen des trainierten Anwendungsmodells zugeordnet sind.
    9. 9. System nach Klausel 8, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, das eine oder die mehreren Merkmale an ein sicheres Rechenzentrum bereitzustellen, um die Protokolldaten zu verschlüsseln.
    10. 10. System nach Klausel 8, wobei der eine oder die mehreren Prozessoren die verschlüsselten Protokolldaten vor der Ausführung des trainierten Anwendungsmodells nicht entschlüsseln.
    11. 11. System nach Klausel 8, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, das Diagnoseergebnis an ein sicheres Rechenzentrum bereitzustellen.
    12. 12. System nach Klausel 11, wobei das Diagnoseergebnis ein verschlüsseltes Diagnoseergebnis ist.
    13. 13. System nach Klausel 8, wobei die verschlüsselten Protokolldaten von einem sicheren Rechenzentrum stammen und die verschlüsselten Protokolldaten vor der Übertragung über eine sichere Grenze des sicheren Rechenzentrums zu verschlüsseln sind.
    14. 14. System nach Klausel 8, wobei das trainierte Anwendungsmodell mindestens eines von einem statistischen Modell oder einem Modell der künstlichen Intelligenz ist.
    15. 15. Verfahren, umfassend:
      • Bestimmen eines oder mehrerer Diagnoseergebnisse mindestens teilweise basierend auf einem trainierten Anwendungsmodell, um homomorph verschlüsselte Protokolldaten zu empfangen, wobei die verschlüsselten Protokolldaten ein oder mehrere Merkmale aufweisen, die mindestens teilweise auf einem oder mehreren Parametern des trainierten Anwendungsmodells basieren, wobei der eine oder die mehreren Parameter einer oder mehreren Operationen des trainierten Anwendungsmodells zugeordnet sind.
    16. 16. Verfahren nach Klausel 15, wobei die verschlüsselten Protokolldaten vor der Ausführung des trainierten Anwendungsmodells nicht entschlüsselt werden.
    17. 17. Verfahren nach Klausel 15, ferner umfassend:
      • Bereitstellen des einen oder der mehreren Merkmale, die von einem Verschlüsselungsmodell zu verwenden sind, um erfasste Protokolldaten zu verschlüsseln, an ein sicheres Rechenzentrum.
    18. 18. Verfahren nach Klausel 15, ferner umfassend:
      • Bereitstellen verschlüsselter Diagnoseergebnisse an ein sicheres Rechenzentrum.
    19. 19. Verfahren nach Klausel 15, wobei das trainierte Anwendungsmodell mindestens eines von einem statistischen Modell oder einem Modell der künstlichen Intelligenz ist.
    20. 20. Verfahren nach Klausel 15, ferner umfassend:
      • Aktualisieren des trainierten Anwendungsmodells mindestens teilweise basierend auf offenen Protokolldaten von einem oder mehreren offenen Rechenzentren.
  • In mindestens einer Ausführungsform verwenden eine oder mehrere hierin beschriebene Techniken ein oneAPI-Programmiermodell. In mindestens einer Ausführungsform bezieht sich ein oneAPI-Programmiermodell auf ein Programmiermodell für die Interaktion mit verschiedenen Compute Accelerator-Architekturen. In mindestens einer Ausführungsform bezieht sich oneAPI auf eine Anwendungsprogrammierschnittstelle (API), die für die Interaktion mit verschiedenen Compute Accelerator-Architekturen entwickelt wurde. In mindestens einer Ausführungsform verwendet ein oneAPI-Programmiermodell eine DPC++-Programmiersprache. In mindestens einer Ausführungsform bezieht sich eine DPC++-Programmiersprache auf eine Hochsprache für eine produktive datenparallele Programmierung. In mindestens einer Ausführungsform basiert eine DPC++-Programmiersprache mindestens teilweise auf den Programmiersprachen C und/oder C++. In mindestens einer Ausführungsform handelt es sich bei einem oneAPI-Programmiermodell um ein Programmiermodell, wie es von der Intel Corporation in Santa Clara, CA, entwickelt wurde.
  • In mindestens einer Ausführungsform wird oneAPI und/oder das oneAPI-Programmiermodell verwendet, um mit verschiedenen Architekturen von Beschleunigern, GPUs, Prozessoren und/oder Variationen davon zu interagieren. In mindestens einer Ausführungsform beinhaltet oneAPI einen Satz von Bibliotheken, die verschiedene Funktionalitäten implementieren. In mindestens einer Ausführungsform beinhaltet oneAPI mindestens eine oneAPI-DPC++-Bibliothek, eine oneAPl-Mathe-Kernel-Bibliothek, eine oneAPI-Datenanalyse-Bibliothek, eine oneAPI-Bibliothek für tiefe neuronale Netze, eine oneAPI-Bibliothek für kollektive Kommunikation, eine oneAPI-Bibliothek für Threading-Bausteine, eine oneAPI-Bibliothek für Videoverarbeitung und/oder Variationen davon.
  • In mindestens einer Ausführungsform ist eine oneAPI-DPC++-Bibliothek, die auch als oneDPL bezeichnet wird, eine Bibliothek, die Algorithmen und Funktionen zur Beschleunigung der DPC++-Kernel-Programmierung implementiert. In mindestens einer Ausführungsform implementiert oneDPL eine oder mehrere Funktionen der Standard Template Library (STL). In mindestens einer Ausführungsform implementiert oneDPL eine oder mehrere parallele STL-Funktionen. In mindestens einer Ausführungsform bietet oneDPL einen Satz von Bibliotheksklassen und -funktionen wie parallele Algorithmen, Iteratoren, Funktionsobjektklassen, bereichsbasierte API und/oder Variationen davon. In mindestens einer Ausführungsform implementiert oneDPL eine oder mehrere Klassen und/oder Funktionen einer C++-Standardbibliothek. In mindestens einer Ausführungsform implementiert oneDPL eine oder mehrere Zufallszahlengeneratorfunktionen.
  • In mindestens einer Ausführungsform handelt es sich bei einer oneAPl-Math-Kernel-Bibliothek, auch oneMKL genannt, um eine Bibliothek, die verschiedene optimierte und parallelisierte Routinen für verschiedene mathematische Funktionen und/oder Operationen implementiert. In mindestens einer Ausführungsform implementiert oneMKL ein oder mehrere BLAS (Basic Linear Algebra Subprograms) und/oder LAPACK (Linear Algebra Package) dichte lineare Algebra-Routinen. In mindestens einer Ausführungsform implementiert oneMKL eine oder mehrere dünn besetzte BLAS-Routinen für lineare Algebra. In mindestens einer Ausführungsform implementiert oneMKL einen oder mehrere Zufallszahlengeneratoren (RNGs). In mindestens einer Ausführungsform implementiert oneMKL eine oder mehrere Vektormathematik(VM)-Routinen für mathematische Operationen auf Vektoren. In mindestens einer Ausführungsform implementiert oneMKL eine oder mehrere Fast-Fourier-Transformations(FFT)-Funktionen.
  • In mindestens einer Ausführungsform ist eine oneAPI-Daten-Analyse-Bibliothek, auch oneDAL genannt, eine Bibliothek, die verschiedene Datenanalyseanwendungen und verteilte Berechnungen implementiert. In mindestens einer Ausführungsform implementiert oneDAL verschiedene Algorithmen für die Vorverarbeitung, Transformation, Analyse, Modellierung, Validierung und Entscheidungsfindung für die Datenanalyse in Batch-, Online- und verteilten Verarbeitungsmodi einer Berechnung. In mindestens einer Ausführungsform implementiert oneDAL verschiedene C++- und/oder Java-APIs und verschiedene Konnektoren zu einer oder mehreren Datenquellen. In mindestens einer Ausführungsform implementiert oneDAL DPC++-API-Erweiterungen zu einer traditionellen C++-Schnittstelle und ermöglicht die Nutzung von GPUs für verschiedene Algorithmen.
  • In mindestens einer Ausführungsform ist eine oneAPI-Bibliothek für tiefe neuronale Netze, die auch als oneDNN bezeichnet wird, eine Bibliothek, die verschiedene Funktionen für tiefes Lernen implementiert. In mindestens einer Ausführungsform implementiert oneDNN verschiedene Funktionen, Algorithmen und/oder Variationen davon für neuronale Netze, maschinelles Lernen und Deep-Learning.
  • In mindestens einer Ausführungsform ist eine kollektive oneAPl-Kommunikationsbibliothek, auch oneCCL genannt, eine Bibliothek, die verschiedene Anwendungen für Deep Learning und maschinelles Lernen implementiert. In mindestens einer Ausführungsform baut oneCCL auf Kommunikations-Middleware der unteren Ebene auf, wie z. B. Message Passing Interface (MPI) und libfabrics. In mindestens einer Ausführungsform ermöglicht oneCCL einen Satz von Deep-Learningspezifischen Optimierungen, wie z. B. Priorisierung, persistente Operationen, Ausführung außerhalb der Reihenfolge und/oder Variationen davon. In mindestens einer Ausführungsform implementiert oneCCL verschiedene CPU- und GPU-Funktionen.
  • In mindestens einer Ausführungsform ist eine oneAPl-Threading-Building-Blocks-Bibliothek, auch oneTBB genannt, eine Bibliothek, die verschiedene parallelisierte Prozesse für verschiedene Anwendungen implementiert. In mindestens einer Ausführungsform wird oneTBB für eine Task-basierte, gemeinsame parallele Programmierung auf einem Host verwendet. In mindestens einer Ausführungsform implementiert oneTBB generische parallele Algorithmen. In mindestens einer Ausführungsform implementiert oneTBB nebenläufige Container. In mindestens einer Ausführungsform implementiert oneTBB einen skalierbaren Speicherallokator. In mindestens einer Ausführungsform implementiert oneTBB einen Work-Stealing-Task-Planer. In mindestens einer Ausführungsform implementiert oneTBB Low-Level-Synchronisationsprimitive. In mindestens einer Ausführungsform ist oneTBB compilerunabhängig und auf verschiedenen Prozessoren wie GPUs, PPUs, CPUs und/oder Variationen davon verwendbar.
  • In mindestens einer Ausführungsform ist eine oneAPl-Videoverarbeitungsbibliothek, die auch als oneVPL bezeichnet wird, eine Bibliothek, die zur Beschleunigung der Videoverarbeitung in einer oder mehreren Anwendungen verwendet wird. In mindestens einer Ausführungsform implementiert oneVPL verschiedene Funktionen zur Videodekodierung, -kodierung und -verarbeitung. In mindestens einer Ausführungsform implementiert oneVPL verschiedene Funktionen für Medien-Pipelines auf CPUs, GPUs und anderen Beschleunigern. In mindestens einer Ausführungsform implementiert oneVPL die Erkennung und Auswahl von Vorrichtung bei medienzentrierten und videoanalytischen Arbeitsbelastungen. In mindestens einer Ausführungsform implementiert oneVPL API-Primitive für die gemeinsame Nutzung von Zero-Copy-Puffern.
  • In mindestens einer Ausführungsform verwendet ein oneAPI-Programmiermodell eine DPC++-Programmiersprache. In mindestens einer Ausführungsform ist eine DPC++-Programmiersprache eine Programmiersprache, die ohne Einschränkung funktional ähnliche Versionen von CUDA-Mechanismen beinhaltet, um Vorrichtungscode zu definieren und zwischen Vorrichtungscode und Hostcode zu unterscheiden. In mindestens einer Ausführungsform kann eine DPC++-Programmiersprache eine Teilmenge der Funktionalität einer CUDA-Programmiersprache beinhalten. In mindestens einer Ausführungsform werden eine oder mehrere Operationen des CUDA Programmiermodells unter Verwendung eines oneAPl Programmiermodells mit einer DPC++-Programmiersprache durchgeführt.
  • In mindestens einer Ausführungsform wird jede hierin beschriebene Anwendungsprogrammierschnittstelle (application programming interface - API) durch einen Compiler, Interpreter oder ein anderes Softwaretool in eine oder mehrere Anweisungen, Operationen oder ein anderes Signal übersetzt. In mindestens einer Ausführungsform umfasst die Kompilierung die Erzeugung einer oder mehrerer maschinenausführbarer Anweisungen, Operationen oder anderer Signale aus dem Quellcode. In mindestens einer Ausführungsform veranlasst eine in einen oder mehrere Anweisungen, Operationen oder andere Signale kompilierte API, wenn sie ausgeführt wird, einen oder mehrere Prozessoren wie etwa Grafikprozessoren, Grafikkerne, Parallelprozessoren, Prozessoren, Prozessorkerne oder andere hierin beschriebene Logikschaltungen, eine oder mehrere Rechenoperationen durchzuführen.
  • Es ist zu beachten, dass sich die hier beschriebenen Ausführungsformen zwar auf ein CUDA-Programmiermodell beziehen, die hier beschriebenen Techniken jedoch mit jedem beliebigen geeigneten Programmiermodell, wie HIP, oneAPI und/oder Variationen davon, verwendet werden können.
  • Andere Variationen liegen innerhalb des Geistes der vorliegenden Offenbarung. Somit können zwar bezüglich der offenbarten Techniken 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 genannt ist oder der Kontext dem eindeutig widerspricht, ist verbindende Sprache, wie etwa Formulierungen der Form „wenigstens 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 nicht leere 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 „wenigstens 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 Operationen 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 nichttransitorisches computerlesbares Speichermedium, das transitorische Signale (z. B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nichttransitorische Datenspeicherschaltungen (z. B. Puffer, Cache und Warteschlangen) innerhalb von Sendeempfängern von transitorischen Signalen beinhaltet. 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 unterschiedliche Prozessoren führen unterschiedliche Teilmengen von Anweisungen aus.
  • In mindestens einer Ausführungsform ist eine arithmetische Logikeinheit eine kombinatorische Logikschaltung, die eine oder mehrere Eingaben verarbeitet, um ein Ergebnis zu erzeugen. In mindestens einer Ausführungsform wird eine arithmetische Logikeinheit von einem Prozessor verwendet, um mathematische Operationen wie Addition, Subtraktion oder Multiplikation durchzuführen. In mindestens einer Ausführungsform wird eine arithmetische Logikeinheit verwendet, um logische Operationen wie etwa logisches UND/ODER oder XODER zu implementieren. In mindestens einer Ausführungsform ist eine arithmetische Logikeinheit zustandslos und besteht aus physischen Switch-Komponenten wie etwa Halbleitertransistoren, die so angeordnet sind, dass sie logische Gatter bilden. In mindestens einer Ausführungsform kann eine arithmetische Logikeinheit intern als zustandsabhängige Logikschaltung mit einem zugehörigen Taktgeber arbeiten. In mindestens einer Ausführungsform kann eine arithmetische Logikeinheit als asynchrone Logikschaltung aufgebaut sein, deren interner Zustand nicht in einem zugehörigen Registersatz gehalten wird. In mindestens einer Ausführungsform wird eine arithmetische Logikeinheit von einem Prozessor verwendet, um in einem oder mehreren Registern des Prozessors gespeicherte Operanden zu kombinieren und eine Ausgabe zu erzeugen, die vom Prozessor in einem anderen Register oder einem Speicherplatz gespeichert werden kann.
  • In mindestens einer Ausführungsform übergibt der Prozessor als Ergebnis der Verarbeitung eines vom Prozessor abgerufenen Anweisungen einen oder mehrere Eingaben oder Operanden an eine arithmetische Logikeinheit, wodurch die arithmetische Logikeinheit veranlasst wird, ein Ergebnis zu erzeugen, das mindestens teilweise auf einem Anweisungscode basiert, der den Eingängen der arithmetischen Logikeinheit bereitgestellt wird. In mindestens einer Ausführungsform basieren die vom Prozessor an die ALU gelieferten Anweisungscodes mindestens zum Teil auf dem vom Prozessor ausgeführten Befehl. In mindestens einer Ausführungsform verarbeitet die kombinatorische Logik in der ALU die Eingaben und erzeugt eine Ausgabe, die auf einen Bus innerhalb des Prozessors gelegt wird. In mindestens einer Ausführungsform wählt der Prozessor ein Zielregister, einen Speicherplatz, eine Ausgabevorrichtung oder einen Ausgabespeicherplatz auf dem Ausgangsbus aus, sodass ein Takt des Prozessors bewirkt, dass die von der ALU erzeugten Ergebnisse an den gewünschten Ort gesendet werden.
  • Im Rahmen dieser Anwendung wird der Begriff arithmetische Logikeinheit oder ALU verwendet, um sich auf jede logische Rechenschaltung zu beziehen, die Operanden verarbeitet, um ein Ergebnis zu erzeugen. Im vorliegenden Dokument kann sich der Begriff ALU beispielsweise auf eine Gleitkommaeinheit, einen DSP, einen Tensor Core, einen Shader Core, einen Coprozessor oder eine CPU beziehen.
  • 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 jeglichen und allen 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 im selben 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 etwa „Verarbeitung“, „Berechnung“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Beschreibung auf Handlungen und/oder Prozesse eines Computers oder Rechensystems oder einer ähnlichen elektronischen Rechenvorrichtung, die Daten, die als physische, wie etwa elektronische, Größen in den Registern und/oder Speichern des Rechensystems 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 Rechensystems 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 werden spezifische Merkmale und Handlungen als beispielhafte Formen zum Implementieren der Ansprüche offenbart.

Claims (20)

  1. Prozessor, umfassend: eine oder mehrere Schaltungen, um ein Diagnoseergebnis aus einem trainierten statistischen Modell für ein sicheres Rechenzentrum zu erzeugen und das trainierte statistische Modell mindestens teilweise basierend auf Informationen von einem oder mehreren offenen Rechenzentren und auf Protokolldaten von dem sicheren Rechenzentrum zu aktualisieren, das sich innerhalb einer sicheren Grenze befindet, die von dem sicheren Rechenzentrum gesteuert wird.
  2. Prozessor nach Anspruch 1, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, eine oder mehrere Korrekturmaßnahmen mindestens teilweise basierend auf dem Diagnoseergebnis zu bestimmen.
  3. Prozessor nach Anspruch 1 oder 2, wobei die eine oder mehreren Schaltungen ferner dazu dienen, eine oder mehrere zukünftige Betriebsbedingungen für eine oder mehrere Komponenten des sicheren Rechenzentrums mindestens teilweise basierend auf dem Diagnoseergebnis zu bestimmen.
  4. Prozessor nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, das Diagnoseergebnis an eine externe Partei bereitzustellen.
  5. Prozessor nach Anspruch 4, wobei das Diagnoseergebnis einer Richtlinie für sichere Rechenzentrumsdaten entspricht.
  6. Prozessor nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, ein aktualisiertes trainiertes statistisches Modell zu empfangen und das aktualisierte statistische Modell mindestens teilweise basierend auf den Protokolldaten abzustimmen.
  7. System nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, einer externen Partei das aktualisierte trainierte statistische Modell bereitzustellen.
  8. System, umfassend: einen oder mehrere Prozessoren, um ein oder mehrere Diagnoseergebnisse zu bestimmen, mindestens teilweise basierend auf einem trainierten Anwendungsmodell, um homomorph verschlüsselte Protokolldaten zu empfangen, wobei die verschlüsselten Protokolldaten ein oder mehrere Merkmale aufweisen, die mindestens teilweise auf einem oder mehreren Parametern des trainierten Anwendungsmodells basieren, wobei der eine oder die mehreren Parameter einer oder mehreren Operationen des trainierten Anwendungsmodells zugeordnet sind.
  9. System nach Anspruch 8, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, das eine oder die mehreren Merkmale an ein sicheres Rechenzentrum bereitzustellen, um die Protokolldaten zu verschlüsseln.
  10. System nach Anspruch 8 oder 9, wobei der eine oder die mehreren Prozessoren die verschlüsselten Protokolldaten vor der Ausführung des trainierten Anwendungsmodells nicht entschlüsseln.
  11. System nach einem der Ansprüche 8 bis 10, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, das Diagnoseergebnis an ein sicheres Rechenzentrum bereitzustellen.
  12. System nach Anspruch 11, wobei das Diagnoseergebnis ein verschlüsseltes Diagnoseergebnis ist.
  13. System nach einem der Ansprüche 8 bis 12, wobei die verschlüsselten Protokolldaten von einem sicheren Rechenzentrum stammen und die verschlüsselten Protokolldaten vor der Übertragung über eine sichere Grenze des sicheren Rechenzentrums zu verschlüsseln sind.
  14. System nach einem der Ansprüche 8 bis 13, wobei das trainierte Anwendungsmodell mindestens eines von einem statistischen Modell oder einem Modell der künstlichen Intelligenz ist.
  15. Verfahren, umfassend: Bestimmen eines oder mehrerer Diagnoseergebnisse, mindestens teilweise basierend auf einem trainierten Anwendungsmodell, um homomorph verschlüsselte Protokolldaten zu empfangen, wobei die verschlüsselten Protokolldaten ein oder mehrere Merkmale aufweisen, die mindestens teilweise auf einem oder mehreren Parametern des trainierten Anwendungsmodells basieren, wobei der eine oder die mehreren Parameter einer oder mehreren Operationen des trainierten Anwendungsmodells zugeordnet sind.
  16. Verfahren nach Anspruch 15, wobei die verschlüsselten Protokolldaten vor der Ausführung des trainierten Anwendungsmodells nicht entschlüsselt werden.
  17. Verfahren nach Anspruch 15 oder 16, ferner umfassend: Bereitstellen des einen oder der mehreren Merkmale, die von einem Verschlüsselungsmodell zu verwenden sind, um erfasste Protokolldaten zu verschlüsseln, an ein sicheres Rechenzentrum.
  18. Verfahren nach einem der Ansprüche 15 bis 17, ferner umfassend: Bereitstellen verschlüsselter Diagnoseergebnisse an ein sicheres Rechenzentrum.
  19. Verfahren nach einem der Ansprüche 15 bis 18, wobei das trainierte Anwendungsmodell mindestens eines von einem statistischen Modell oder einem Modell der künstlichen Intelligenz ist.
  20. Verfahren nach einem der Ansprüche 15 bis 19, ferner umfassend: Aktualisieren des trainierten Anwendungsmodells mindestens teilweise basierend auf offenen Protokolldaten von einem oder mehreren offenen Rechenzentren.
DE102023103633.5A 2022-02-24 2023-02-15 Zustandsüberwachung in sicheren rechenzentren Pending DE102023103633A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/679,461 2022-02-24
US17/679,461 US20230281069A1 (en) 2022-02-24 2022-02-24 Health monitoring in secure data centers

Publications (1)

Publication Number Publication Date
DE102023103633A1 true DE102023103633A1 (de) 2023-08-24

Family

ID=87518809

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023103633.5A Pending DE102023103633A1 (de) 2022-02-24 2023-02-15 Zustandsüberwachung in sicheren rechenzentren

Country Status (3)

Country Link
US (1) US20230281069A1 (de)
CN (1) CN116643938A (de)
DE (1) DE102023103633A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113632082A (zh) * 2019-01-23 2021-11-09 皇家飞利浦有限公司 机器学习模型验证和认证
CN117593686B (zh) * 2024-01-19 2024-04-09 福思(杭州)智能科技有限公司 基于车况真值数据的模型评测方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8925080B2 (en) * 2011-12-20 2014-12-30 Sap Se Deception-based network security using false positive responses to unauthorized access requests
US10915435B2 (en) * 2018-11-28 2021-02-09 International Business Machines Corporation Deep learning based problem advisor
US20210035026A1 (en) * 2019-07-31 2021-02-04 Microsoft Technology Licensing, Llc Diagnosing & triaging performance issues in large-scale services
US11366466B1 (en) * 2020-12-24 2022-06-21 Microsoft Technology Licensing, Llc Predictive maintenance techniques and analytics in hybrid cloud systems
US20220414223A1 (en) * 2021-06-29 2022-12-29 EMC IP Holding Company LLC Training data protection for artificial intelligence model in partitioned execution environment
US20230025754A1 (en) * 2021-07-22 2023-01-26 Accenture Global Solutions Limited Privacy-preserving machine learning training based on homomorphic encryption using executable file packages in an untrusted environment

Also Published As

Publication number Publication date
CN116643938A (zh) 2023-08-25
US20230281069A1 (en) 2023-09-07

Similar Documents

Publication Publication Date Title
DE112021002803T5 (de) Reservoir in einem rack-formfaktor für kühlsysteme in rechenzentren
DE102021133641A1 (de) Verteilung des flüssigkeitsstroms mit hilfe eines oder mehrerer neuronaler netzwerke
DE102021122545A1 (de) Redundante flüssigkeitsverteilungseinheiten für rechenzentrum-racks
DE112021004177T5 (de) Detektion von einem Leistungsrückgang eines Webservice basierend auf Metriken von Gruppen von Benutzerinteraktionen
DE112021002386T5 (de) Analyse der kühlfluidqualität in rechenzentren und schadensbegrenzung
DE102022120616A1 (de) Selbstheilung und Rechenzentren
DE102021131090A1 (de) Intelligenter und redundanter luftgekühlter kühlkreislauf für rechenzentrum-kühlsysteme
DE102022101324A1 (de) Statischer rechenzentrum-leistungsausgleich und konfiguration
DE102021123338A1 (de) Vorausschauende steuerung unter verwendung eines oder mehrerer neuralen netze
DE112021005444T5 (de) Intelligente strom- und kühlmittelverteilereinheit für kühlsysteme in rechenzentren
DE102023103633A1 (de) Zustandsüberwachung in sicheren rechenzentren
DE102022111321A1 (de) Intelligentes lecksensorsystem für rechenzentrumskühlsysteme
DE102023113043A1 (de) Codeerzeugungsverfahren
DE102022118682A1 (de) Kabelidentifizierung und geführte verbindungen
DE102022112385A1 (de) Intelligentes testsystem unter verwendung von kühlsystemen in rechenzentren
DE102022111135A1 (de) Intelligente durchflussregler mit heiss austauschbaren kühlplatten in kühlsystemen von rechenzentren
DE102022101525A1 (de) Intelligenter kühlmittelunterstützter flüssigkeit-zu-luftwärmetauscher für kühlsysteme in einem rechenzentrum
DE102021124265A1 (de) Lokalisierte Immersionskühlung für Rechenzentrum-Kühlungssysteme
DE102023121882A1 (de) Prozessorbasierte speicherzuweisung
DE112023000088T5 (de) Selektive kommunikationsschnittstellen für programmierbare teile
DE102022131531A1 (de) Luftstromregelung für kühleffizienz
DE102022126283A1 (de) Nichtflüchtiger Speicher und Schnittstelle
DE102022120925A1 (de) Automatisierte kabelreparatur vor ort
DE102022119581A1 (de) Bewegungsdaten zur ausfallerkennung
DE102022114661A1 (de) Rack-komponenten-erkennungs- und kommunikationsfeld

Legal Events

Date Code Title Description
R012 Request for examination validly filed