DE102022107621A1 - Resourcenauswahl, die zum teil auf der arbeitslast basiert - Google Patents

Resourcenauswahl, die zum teil auf der arbeitslast basiert Download PDF

Info

Publication number
DE102022107621A1
DE102022107621A1 DE102022107621.0A DE102022107621A DE102022107621A1 DE 102022107621 A1 DE102022107621 A1 DE 102022107621A1 DE 102022107621 A DE102022107621 A DE 102022107621A DE 102022107621 A1 DE102022107621 A1 DE 102022107621A1
Authority
DE
Germany
Prior art keywords
workload
perform
request
memory
node
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
DE102022107621.0A
Other languages
English (en)
Inventor
Francesc Guim Bernat
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102022107621A1 publication Critical patent/DE102022107621A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

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

Abstract

Hierin beschriebene Beispiele betreffen ein System, das zumindest einen Prozessor und eine Schaltungsanordnung umfasst, ausgebildet zum: Bestimmen mehrerer Konfigurationen von Hardwareressourcen, um eine einer Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe basierend auf einer Vorverarbeitungsoperation, zugeordnet der Arbeitslastanforderung und zumindest einem der Arbeitslastanforderung zugeordneten Service Level Agreement- (SLA-) Parameter, auszuführen. Bei einigen Beispielen ist eine ausführbare Binärdatei der Arbeitslastanforderung zugeordnet und die Ausführung der ausführbaren Binärdatei führt die Vorverarbeitungsoperation durch. Bei einigen Beispielen ist die Schaltungsanordnung ausgebildet zum Speichern der mehreren Konfigurationen von Hardwareressourcen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen.

Description

  • HINTERGRUND
  • Cloud-Computing bietet Flexibilität bei der Auswahl von Hardware-, Firmware- und/oder Software-Ressourcen. Cloud-Dienste-Anbieter (CSPs; Cloud service providers) können eine Plattform mit Ressourcen zur Verwendung durch Anwendungen, Dienste, Container usw. anbieten. Service Level Agreements (SLAs) können Ressourcen- und PerformanceAnforderungen für die Ausführung einer Arbeitslast angeben. CSPs nutzen Ressourcenmanagement-Technologien, um SLA-Anforderungen zu erfüllen und gleichzeitig die Ressourcenverfügbarkeit für andere Anwendungen oder Arbeitslasten auszugleichen.
  • Figurenliste
    • 1 ist ein vereinfachtes Diagramm von zumindest einem Rechenzentrum für ein Ausführen von Arbeitslasten mit disaggregierten Ressourcen.
    • 2 ist ein vereinfachtes Diagramm von zumindest einem System, das in einem Rechenzentrum umfasst sein kann.
    • 3 ist ein vereinfachtes Blockdiagramm von zumindest einer Oberseite eines Knotens.
    • 4 ist ein vereinfachtes Blockdiagramm von zumindest einer Unterseite eines Knotens.
    • 5 ist ein vereinfachtes Blockdiagramm von zumindest einem Rechenknoten.
    • 6 ist ein vereinfachtes Blockdiagramm von zumindest einem Beschleunigerknoten, der in einem Rechenzentrum verwendbar ist.
    • 7 ist ein vereinfachtes Blockdiagramm von zumindest einem Speicherungsknoten, der in einem Rechenzentrum verwendbar ist.
    • 8 ist ein vereinfachtes Blockdiagramm von zumindest einem Speicherknoten, der in einem Rechenzentrum verwendbar ist.
    • 9 zeigt ein System zum Ausführen von einer oder mehreren Arbeitslasten.
    • 10 zeigt ein beispielhaftes System.
    • 11 zeigt ein beispielhaftes System.
    • 12 zeigt ein beispielhaftes Edge-Cloud-Basisstationssystem.
    • 13 zeigt ein beispielhaftes System.
    • 14 zeigt ein beispielhaftes System.
    • 15 zeigt einen beispielhaften Betrieb eines Systems.
    • 16 stellt einen beispielhaften Prozess dar.
    • 17 zeigt ein beispielhaftes System.
  • DETAILLIERTE BESCHREIBUNG
  • FIG. 1 zeigt ein Rechenzentrum, in dem disaggregierte Ressourcen kooperativ eine oder mehrere Arbeitslasten (z. B. Anwendungen im Namen von Kunden) ausführen können, das mehrere Systemen 110, 70, 130, 80 umfasst, wobei ein System eine oder mehrere Reihen von Racks, Racks oder Träger umfasst. Obwohl das Rechenzentrum 100 mit mehreren Systemen dargestellt ist, kann das Rechenzentrum 100 natürlich als ein einzelnes System ausgeführt sein. Wie hierin ausführlicher beschrieben, häust das Rack mehrere Knoten, von denen einige mit einer oder mehreren Arten von Ressourcen ausgestattet sein können (z. B. Speichervorrichtungen, Datenspeicherungsvorrichtungen, Beschleunigervorrichtungen, Allzweckprozessoren, GPUs, xPUs, CPUs, feldprogrammierbare Gate-Arrays (FPGAs) oder anwendungsspezifische integrierte Schaltungen (ASICs)). Ressourcen können logisch gekoppelt oder aggregiert werden, um einen zusammengesetzten Knoten oder Composite Node zu bilden, der z. B. als Server für die Ausführung eines Auftrags, einer Arbeitslast oder von Microservices fungieren kann. Ein oder mehrere hier beschriebene Beispiele können in einem Rechenzentrum oder Mikro-Rechenzentrum verwendet werden.
  • Verschiedene hierin beschriebene Beispiele können eine aus Microservices zusammengesetzte Anwendung ausführen, bei der ein Microservice in seinem eigenen Prozess läuft und unter Verwendung von Protokollen (z. B. Anwendungsprogrammschnittstelle (API; application program interface), ein Hypertext Transfer Protocol- (HTTP-) Ressourcen-API, Nachrichtendienst, Remote Procedure Calls (RPC) oder Google RPC (gRPC)) kommuniziert. Microservices können unabhängig unter Verwendung eines zentralisierten Managements dieser Services eingesetzt werden. Das Managementsystem kann in verschiedenen Programmiersprachen geschrieben sein und verschiedene Datenspeicherungstechnologien verwenden. Ein Microservice kann charakterisiert sein durch eines oder mehrere von: Verwendung feinkörniger Schnittstellen (zu unabhängig einsetzbaren Diensten), polyglotte Programmierung (z. B. in mehreren Sprachen geschriebener Code zur Erfassung zusätzlicher Funktionen und Effizienz, die in einer einzigen Sprache nicht verfügbar sind) oder Einsatz von leichten Containern oder virtuellen Maschinen und dezentralisierte kontinuierliche Lieferung von Microservices.
  • Die Knoten in System 110, 70, 130, 80 sind mit mehreren System-Schaltern (z. B. Schalter, die Datenkommunikationen zu und von Knoten innerhalb des Systems routen) verbunden. Schalter können Top of Rack (TOR), End of Row (EOR), Middle of Rack (MOR) oder an einer Position in einem Rack oder einer Reihe positioniert werden. Die System-Schalter verbinden wiederum mit Spine-Schaltern 90, die Kommunikationen unter Systemen (z. B. den Systemen 110, 70, 130, 80) in dem Rechenzentrum 100 schalten. Die Knoten können unter Verwendung der hier beschriebenen oder proprietärer Standards mit einer Struktur (Fabric) verbunden sein. Knoten können mit anderen Strukturen, wie beispielsweise InfiniBand oder Ethernet, verbunden sein. Wie hierin detaillierter beschrieben ist, können Ressourcen innerhalb von Knoten in dem Rechenzentrum 100 einer Gruppe (hierin als ein „gemanagter Knoten“ bezeichnet) zugeordnet werden, die Ressourcen von einem oder mehreren Knoten umfasst, die bei der Ausführung einer Arbeitslast gemeinschaftlich genutzt werden sollen. Die Arbeitslast kann ausgeführt werden, als ob die Ressourcen, die zu dem gemanagten Knoten gehören, auf demselben Knoten positioniert sind. Die Ressourcen in einem gemanagten Knoten können zu Knoten gehören, die zu unterschiedlichen Racks und sogar zu unterschiedlichen Systemen 110, 70, 130, 80 gehören. Somit können einige Ressourcen eines einzelnen Knotens zu einem gemanagten Knoten zugeordnet sein, während andere Ressourcen desselben Knotens zu einem unterschiedlichen gemanagten Knoten (z. B. ein Prozessor ist einem gemanagten Knoten zugewiesen und ein anderer Prozessor desselben Knotens ist einem unterschiedlichen gemanagten Knoten zugewiesen) zugeordnet sind.
  • Das Disaggregieren von Ressourcen zu Knoten, überwiegend umfassend eine einzige Ressourcenart (z. B. Rechenknoten, die primär Rechenressourcen umfassen, Speicherknoten, die primär Speicherressourcen umfassen), und das selektive Zuweisen und Aufheben der Zuweisung der disaggregierten Ressourcen, um einen gemanagten Knoten zu bilden, der zugewiesen ist, um eine Arbeitslast auszuführen, verbessert den Betrieb und die Ressourcennutzung des Rechenzentrums 100 im Vergleich zu typischen Rechenzentren, die hyperkonvergente Server aufweisen, die Rechen-, Speicher- (memory), Speicherungs- (storage) und möglicherweise zusätzliche Ressourcen umfassen. Da Knoten beispielsweise überwiegend Ressourcen eines bestimmten Typs umfassen, können Ressourcen eines gegebenen Typs unabhängig von anderen Ressourcen upgegradet werden. Zusätzlich, da unterschiedliche Ressourcenarten (Prozessoren, Speicher Speicherung, Beschleuniger usw.) üblicherweise unterschiedliche Aktualisierungsraten aufweisen, können eine größere Ressourcennutzung und reduzierte Gesamtbetriebskosten erreicht werden. Beispielsweise kann ein Rechenzentrumsbetreiber die Prozessoren in seiner gesamten Anlage upgraden, indem er nur die Rechenknoten auslagert. In einem solchen Fall werden Beschleuniger- und Speicherungsressourcen möglicherweise nicht gleichzeitig upgegradet, sondern es kann ihnen vielmehr erlaubt werden, so lange weiterzuarbeiten, bis die eigene Aktualisierung dieser Ressourcen vorgesehen ist. Auch die Ressourcennutzung kann zunehmen. Wenn verwaltete Knoten beispielsweise basierend auf Anforderungen der Arbeitslasten zusammengesetzt sind, die auf ihnen ausgeführt werden, ist es wahrscheinlicher, dass Ressourcen innerhalb eines Knotens vollständig genutzt werden. Eine solche Nutzung kann es erlauben, dass mehr verwaltete Knoten in einem Rechenzentrum mit einem gegebenen Satz von Ressourcen ausgeführt werden oder dass ein Rechenzentrum, von dem erwartet wird, dass es einen gegebenen Satz von Arbeitslasten ausführt, unter Verwendung von weniger Ressourcen gebaut wird.
  • 2 stellt ein System dar. Ein System kann einen Satz von Reihen 200, 210, 220, 230 von Racks 240 umfassen. Jedes Rack 240 kann mehrere Knoten (z. B. sechzehn Knoten) häusen und an die gehäusten Knoten Leistung und Datenverbindungen bereitstellen, wie hierin detaillierter beschrieben ist. Racks in Reihe 200, 210, 220, 230 sind mit mehreren Systems-Schaltern 250, 260 verbunden. Der System-Schalter 250 umfasst einen Satz von Ports 252, mit denen die Knoten der Racks des Systems 110 verbunden sind, und einen anderen Satz von Ports 254, die das System 110 mit den Spine-Schaltern 90 verbinden, um Konnektivität zu anderen Systemen in dem Rechenzentrum 100 bereitzustellen. Ähnlich umfasst der System-Schalter 260 einen Satz von Ports 262, mit dem die Knoten der Racks des Systems 110 verbunden sind, und einen Satz von Ports 264, die das System 110 mit den Spine-Schaltern 90 verbinden. Somit stellt die Verwendung des Paares von Schaltern 250, 260 an das System 110 einen Redundanzbetrag bereit. Zum Beispiel, falls irgendeiner der Schalter 250, 260 ausfällt, können die Knoten in dem System 110 immer noch eine Datenkommunikation mit dem Rest des Rechenzentrums 100 (z. B. Knoten anderer Systeme) durch den anderen Schalter 250, 260 aufrechterhalten. Ferner können Schalter 90, 250, 260 als Dual-Mode- optische Schalter ausgeführt sein, die in der Lage sind, sowohl Ethernet-Protokoll-Kommunikationen, die Internet-Protocol- (IP-) Pakete tragen, als auch Kommunikationen gemäß einem zweiten, Hochperformance-Link-Layer-Protokoll (z. B. PCI Express oder Compute Express Link) über optische Signalisierungsmedien einer optischen Struktur zu routen.
  • Es wird darauf hingewiesen, dass Systeme 70, 130, 80 (sowie zusätzliche Systeme des Rechenzentrums 100) ähnlich strukturiert sein können wie, und Komponenten aufweisen können, die ähnlich sind wie, das System 110, das Bezug nehmend auf 2 gezeigt und beschrieben ist (z. B. kann das System Reihen von Racks aufweisen, die mehrere Knoten häusen, wie vorangehend beschrieben ist). Zusätzlich, obwohl zwei System-Schalter 250, 260 gezeigt sind, versteht es sich, dass System 110, 70, 130, 80 mit einer unterschiedlichen Anzahl von System-Schaltern, die noch mehr Failover-Kapazität bereitstellen, verbunden sein kann. Natürlich können die Systeme unterschiedlich angeordnet sein als die in den 1-2 gezeigte Reihen-von-Racks-Konfiguration. Beispielsweise kann ein System als mehrere Sätze von Racks ausgeführt sein, in denen ein Satz von Racks radial angeordnet ist, d. h. die Racks sind äquidistant von einem mittleren Schalter.
  • Bezug nehmend nun auf 3 ist Knoten 400 ausgebildet, in einem entsprechenden Rack 240 des Rechenzentrums 100 befestigt zu werden, wie vorangehend erörtert wurde. Ein Knoten 400 kann für die Durchführung bestimmter Aufgaben optimiert oder anderweitig ausgebildet sein, wie z. B. Rechenaufgaben, Beschleunigungsaufgaben, Datenspeicherungsaufgaben usw. Der Knoten 400 kann beispielsweise als Rechenknoten 500, wie unten in Bezug auf 5 erörtert, Beschleunigerknoten 600 wie unten in Bezug auf 6 erörtert, Speicherungsknoten 700 wie unten in Bezug auf 7 erörtert oder als Knoten ausgeführt werden, der optimiert oder anderweitig ausgebildet ist, andere spezialisierte Aufgaben auszuführen, wie beispielsweise ein Speicherknoten 800 wie unten in Bezug auf 8 erörtert.
  • Obwohl zwei physische Ressourcen 320 in 3 gezeigt sind, wird darauf hingewiesen, dass der Knoten 400 ein, zwei oder mehr physische Ressourcen 320 umfassen kann. Die physischen Ressourcen 320 können als irgendeine Art von Prozessor, Steuerung oder andere Rechenschaltung verkörpert sein, der/die in der Lage ist, verschiedene Aufgaben wie beispielsweise Rechenfunktionen und/oder ein Steuern der Funktionen des Knotens 400 auszuführen, abhängig von, zum Beispiel, dem Typ oder der beabsichtigten Funktionalität des Knotens 400. Zum Beispiel können, wie nachfolgend detaillierter erörtert, die physischen Ressourcen 320 als Hochperformance-Prozessoren ausgeführt sein, bei denen der Knoten 400 ausgeführt ist als Rechenknoten, als Beschleuniger-Co-Prozessoren oder Schaltungen, bei denen der Knoten 400 als Beschleunigerknoten ausgeführt ist, Speicherungssteuerungen, bei denen der Knoten 400 als Speicherungsknoten ausgeführt ist, oder ein Satz von Speichervorrichtungen, bei denen der Knoten 400 als Speicherknoten ausgeführt ist.
  • Der Knoten 400 umfasst auch eine oder mehrere zusätzliche physische Ressourcen 330, die an dem Schaltungsplatinensubstrat 302 befestigt sind. Die zusätzlichen physischen Ressourcen umfassen eine Netzwerkschnittstellensteuerung (NIC; Network Interface Controller), wie nachfolgend detaillierter erörtert wird. Natürlich können abhängig von der Art und Funktionalität des Knotens 400 die physischen Ressourcen 330 zusätzliche oder andere elektrische Komponenten, Schaltungen und/oder Vorrichtungen umfassen.
  • Die physischen Ressourcen 320 können mit den physischen Ressourcen 330 über ein Eingang/Ausgang- (I/O-; input/output) Teilsystem 322 kommunikativ gekoppelt sein. Das I/O-Teilsystem 322 kann als eine Schaltungsanordnung und/oder Komponenten ausgeführt sein, um Eingabe-/Ausgabe-Operationen mit den physischen Ressourcen 320, den physischen Ressourcen 330 und/oder anderen Komponenten des Knotens 400 zu erleichtern. Zum Beispiel kann das I/O-Teilsystem 322 als Speichersteuerungs-Hubs, Eingabe/Ausgabe-Steuerungs-Hubs, Integrierter-Sensor-Hubs, Firmware-Vorrichtungen, Kommunikationslinks (z. B. Punkt-zu-Punkt-Links, Bus-Links, Drähte, Kabel, Wellenleiter, Lichtführungen, Gedruckte-Schaltungsplatinen-Leiterbahnen usw.) und/oder andere Komponenten und Teilsysteme, um die Eingabe-/Ausgabe-Operationen zu ermöglichen, ausgeführt sein oder diese anderweitig umfassen. Das I/O-Teilsystem 322 ist als Doppeldatenrate-4 (DDR4-; double data rate 4) Datenbus oder als ein DDR5-Datenbus ausgeführt oder umfasst dieselben anderweitig.
  • Der Knoten 400 kann auch eine Ressource-zu-Ressource-Verbindung 324 umfassen. Die Ressource-zu-Ressource-Verbindung 324 kann als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Ressource-zu-Ressource-Kommunikationen zu ermöglichen. Die Ressource-zu-Ressource-Verbindung 324 ist als Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem 322) ausgeführt. Zum Beispiel kann die Ressource-zu-Ressource-Verbindung 324 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI), PCI Express (PCIe) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Ressource-zu-Ressource-Kommunikationen dediziert ist.
  • Der Knoten 400 umfasst auch einen Leistungsverbinder 340, der ausgebildet ist, um mit einem entsprechenden Leistungsverbinder des Racks 240 zusammenzupassen, wenn der Knoten 400 in dem entsprechenden Rack 240 befestigt ist. Der Knoten 400 empfängt Leistung von einer Leistungsversorgung des Racks 240 über den Leistungsverbinder 340, um den verschiedenen elektrischen Komponenten des Knotens 400 Leistung zu liefern. Das heißt, der Knoten 400 umfasst nicht irgendeine lokale Leistungsversorgung (z. B. eine eingebaute Leistungsversorgung), um an die elektrischen Komponenten des Knotens 400 Leistung bereitzustellen. Bei einigen Beispielen umfasst der Knoten 400 nicht irgendeine lokale Leistungsversorgung (z. B. eine eingebaute Leistungsversorgung), um an die elektrischen Komponenten des Knotens 400 Leistung bereitzustellen. Der Ausschluss einer lokalen oder eingebauten Leistungsversorgung erleichtert die Reduzierung der Gesamtgrundfläche des Schaltungsplatinensubstrats 302, was die thermischen kühlenden Charakteristika der verschiedenen elektrischen Komponenten, die auf dem Schaltungsplatinensubstrat 302 befestigt sind, erhöhen kann, wie vorangehend erörtert wurde. Spannungsregler werden auf das Schaltungsplatinensubstrat 302 direkt gegenüber den Prozessoren 520 (siehe 5) platziert, und die Leistung wird von den Spannungsreglern zu den Prozessoren 520 durch Vias geroutet, die sich durch das Leiterplattensubstrat 302 erstrecken. Eine solche Konfiguration stellt ein erhöhtes thermisches Budget, zusätzlichen Strom und/oder Spannung und eine bessere Spannungssteuerung relativ zu typischen gedruckten Schaltungsplatinen bereit, bei denen die Prozessorleistung von einem Spannungsregler teilweise durch gedruckte Schaltungs-Leiterbahnen geliefert wird.
  • Der Knoten 400 kann auch Befestigungsmerkmale 342 umfassen, die ausgebildet sind, mit einem Befestigungsarm oder einer anderen Struktur eines Roboters zusammenzupassen, um das Platzieren des Knotens 300 in einem Rack 240 durch den Roboter zu ermöglichen. Die Befestigungsmerkmale 342 können als irgendeine Art physischer Strukturen ausgeführt sein, die es dem Roboter erlauben, den Knoten 400 zu greifen, ohne das Schaltungsplatinensubstrat 302 oder die darauf befestigten elektrischen Komponenten zu beschädigen.
  • Bezug nehmend nun auf 4, zusätzlich zu den physischen Ressourcen 330, die auf dem Schaltungsplatinensubstrat 302 befestigt sind, umfasst der Knoten 400 auch eine oder mehrere Speichervorrichtungen 420. Die physischen Ressourcen 320 können mit den Speichervorrichtungen 420 über das I/O-Teilsystem 322 kommunikativ gekoppelt sein. Zum Beispiel können die physischen Ressourcen 320 und die Speichervorrichtungen 420 durch ein oder mehrere Vias, die sich durch das Schaltungsplatinensubstrat 302 erstrecken, kommunikativ gekoppelt sein. Eine physische Ressource 320 kann mit einem unterschiedlichen Satz von einer oder mehreren Speichervorrichtungen 420 kommunikativ gekoppelt sein. Alternativ kann die physische Ressource 320 kommunikativ mit der Speichervorrichtung 420 gekoppelt sein.
  • Die Speichervorrichtungen 420 können als irgendeine Art von Speichervorrichtung ausgeführt sein, die in der Lage ist, Daten für die physischen Ressourcen 320 während des Betriebs des Knotens 400 zu speichern, wie beispielsweise irgendeine Art von flüchtigem (z. B. dynamischer Direktzugriffsspeicher (DRAM; dynamic random access memory) etc.) oder nichtflüchtigem Speicher. Ein flüchtiger Speicher kann ein Speicherungsmedium sein, das Leistung benötigt, um den Zustand von durch das Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtigen Speicher können verschiedene Typen von Direktzugriffsspeicher (RAM; random access memory) umfassen, wie beispielsweise dynamischen Direktzugriffsspeicher (DRAM) oder statischen Direktzugriffsspeicher (SRAM; static random access memory). Eine bestimmte Art von DRAM, die in einem Speichermodul verwendet werden kann, ist ein synchroner dynamischer Direktzugriffsspeicher (SDRAM; synchronous dynamic random access memory). Der DRAM einer Speicherkomponente kann einem durch JEDEC veröffentlichten Standard entsprechen, wie beispielsweise JESD79F für DDR SDRAM, JESD79-2F für DDR2 SDRAM, JESD79-3F für DDR3 SDRAM, JESD79-4A für DDR4 SDRAM, JESD209 für Low Power DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4. Solche Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen der Speicherungsvorrichtungen, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden.
  • Die Speichervorrichtung kann eine blockadressierbare Speichervorrichtung sein, wie beispielsweise diejenigen, die auf NAND- oder NOR-Technologien basieren, wie beispielsweise Multi-Schwellenpegel-NAND-Flashspeicher oder NOR-Flashspeicher. Ein Block kann irgendeine Größe aufweisen, wie beispielsweise, aber nicht beschränkt auf z. B. 2KB, 4KB, 5KB und so weiter. Eine Speichervorrichtung kann auch nichtflüchtige Vorrichtungen der nächsten Generation umfassen, wie beispielsweise Intel Optane® Speicher oder andere byteadressierbare Write-in-Place- nichtflüchtige Speichervorrichtungen (z. B. Speichervorrichtungen, die Chalkogenidglas verwenden), Multi-Schwellenpegel-NAND-Flash-Speicher, NOR-Flash-Speicher, Single- oder Multi-Level-Phasenwechselspeicher (PCM; Phase Change Memory), einen resistiven Speicher, Nanodraht-Speicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM; ferroelectric transistor random access memory), antiferroelektrischen Speicher, magnetoresistiven Direktzugriffsspeicher (MRAM; magnetoresistive random access memory) Speicher, der Memristor-Technologie einbringt, resistiven Speicher, umfassend die Metalloxidbasis, die Sauerstoffleerstellenbasis und den Leitfähige-Brücken-Direktzugriffsspeicher (CB-RAM; conductive bridge Random Access Memory), oder Spin-Transfer-Torque- (STT) MRAM, eine Spintronik-Magnetübergangsspeicher-basierte Vorrichtung, eine Magnet-Tunnelübergang (MTJ-; magnetic tunneling junction) basierte Vorrichtung, eine DW- (Domain Wall-) und Spin-Bahn-Transfer- (SOT-; Spin Orbit Transfer) basierte Vorrichtung, eine thyristorbasierte Speichervorrichtung oder eine Kombination aus einem oder mehreren der Obigen oder einen anderen Speicher. Die Speichervorrichtung kann sich auf den Die selbst und/oder auf ein gepackagtes Speicherprodukt beziehen. Die Speichervorrichtung kann eine transistorlose, stapelbare Kreuzpunktarchitektur umfassen, bei der Speicherzellen an dem Schnittpunkt von Wortleitungen und Bitleitungen sitzen und individuell adressierbar sind und wobei Bitspeicherung auf einer Veränderung des Bulk-Widerstands basiert.
  • Bezug nehmend nun auf 5 kann der Knoten 400 als Rechenknoten 500 ausgeführt sein. Der Rechenknoten 500 kann ausgebildet sein, Rechenaufgaben durchzuführen. Natürlich kann der Rechenknoten 500, wie vorangehend erörtert wurde, sich auf andere Knoten verlassen, wie beispielsweise Beschleunigungsknoten und/oder Speicherungsknoten, um solche Rechenaufgaben durchzuführen. Bei dem darstellenden Rechenknoten 500 sind die physischen Ressourcen 320 als Prozessoren 520 ausgeführt. Obwohl nur zwei Prozessoren 520 in 5 gezeigt sind, wird darauf hingewiesen, dass der Rechenknoten 500 zusätzliche Prozessoren 520 umfassen kann. Darstellenderweise sind die Prozessoren 520 als Hochperformance-Prozessoren 520 ausgeführt und können ausgebildet sein, mit einer relativ hohen Nennleistung zu arbeiten.
  • Der Rechenknoten 500 kann auch eine Prozessor-zu-Prozessor-Verbindung 542 umfassen. Die Prozessor-zu-Prozessor-Verbindung 542 kann als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Prozessor-zu-Prozessor-Verbindungs- 542 Kommunikationen zu ermöglichen. Die Prozessor-zu-Prozessor-Verbindung 542 ist als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem 322) ausgeführt. Zum Beispiel kann die Prozessor-zu-Prozessor-Verbindung 542 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen (z. B. PCIe oder Compute Express Link (CXL)) dediziert ist.
  • Der Rechenknoten 500 umfasst auch eine Kommunikationsschaltung 530. Die darstellende Kommunikationsschaltung 530 umfasst eine Netzwerkschnittstellensteuerung (NIC) 532, die auch als eine Host-Struktur-Schnittstelle (HFI; host fabric interface) bezeichnet werden kann. Die NIC 532 kann als irgendeine Art von integrierter Schaltung, diskreten Schaltungen, Steuerungschips, Chipsätzen, Add-in-Platinen, Tochterkarten, Netzwerkschnittstellenkarten oder anderen Vorrichtungen, die durch den Rechenknoten 500 verwendet werden können, um sich mit einer anderen Rechenvorrichtung (z. B. mit anderen Knoten 400) zu verbinden, ausgeführt sein oder diese anderweitig umfassen. Die NIC 532 kann als Teil eines System-auf-einem-Chip (SoC), das einen oder mehrere Prozessoren umfasst, ausgeführt sein, oder auf einem Multi-Chip-Package, das auch einen oder mehrere Prozessoren umfasst, umfasst sein. Die NIC 832 kann einen lokalen Prozessor (nicht gezeigt) und/oder einen lokalen Speicher (nicht gezeigt) umfassen, die beide lokal zu der NIC 832 sind. Der lokale Prozessor der NIC 532 kann in der Lage sein, eine oder mehrere der Funktionen der Prozessoren 520 auszuführen. Zusätzlich oder alternativ kann der lokale Speicher der NIC 532 in eine oder mehrere Komponenten des Rechenknotens 102 auf der Platinenebene, Buchsenebene, Chip-Ebene und/oder anderen Ebenen integriert sein. Bei einigen Beispielen umfasst eine Netzwerkschnittstelle eine Netzwerkschnittstellensteuerung oder eine Netzwerkschnittstellenkarte. Bei einigen Beispielen kann eine Netzwerkschnittstelle eine oder mehrere von einer Netzwerkschnittstellensteuerung (NIC) 532, einer Host-Struktur-Schnittstelle (HFI), einem Host-Bus-Adapter (HBA), einer Netzwerkschnittstelle, die mit einem Bus oder einer Verbindung (z. B. PCIe, CXL, DDR usw.) verbunden ist, umfassen. Bei einigen Beispielen kann eine Netzwerkschnittstelle Teil eines Schalters (switch) oder eines System-on-Chip (SoC) sein.
  • Einige Beispiele einer NIC sind Teil einer Infrastrukturverarbeitungseinheit (IPU; Infrastructure Processing Unit) oder Datenverarbeitungseinheit (DPU; data processing unit) oder werden von einer IPU oder DPU verwendet. Eine IPU oder DPU kann eine Netzwerkschnittstelle, Speichervorrichtungen und einen oder mehrere programmierbare oder Feste-Funktion-Prozessoren (z. B. CPU oder XPU) umfassen, um eine Auslagerung von Operationen auszuführen, die von einer Host-CPU, GPU, GPGPU oder XPU oder entfernten CPU oder XPU hätten ausgeführt werden können. Bei einigen Beispielen kann die IPU oder DPU virtuelle Schaltoperationen ausführen, Speichertransaktionen managen (z. B. Komprimierung, Kryptographie, Virtualisierung) und Operationen managen, die auf anderen IPUs, DPUs, Servern oder Vorrichtungen ausgeführt werden.
  • Die Kommunikationsschaltung 530 ist kommunikativ mit einem optischen Datenverbinder 534 gekoppelt. Der optische Datenverbinder 534 ist ausgebildet, mit einem entsprechenden optischen Datenverbinder eines Racks zusammenzupassen, wenn der Rechenknoten 500 in dem Rack befestigt ist. Darstellenderweise umfasst der optische Datenverbinder 534 eine Mehrzahl von optischen Fasern, die von einer zusammenpassenden Oberfläche des optischen Datenverbinders 534 zu einem optischen Sendeempfänger (TX/RX) 536 führen. Der optische Sendeempfänger 536 ist ausgebildet, eingehende optische Signale von dem rackseitigen optischen Datenverbinder in elektrische Signale umzuwandeln und um elektrische Signale in ausgehende optische Signale zu dem rackseitigen optischen Datenverbinder umzuwandeln. Obwohl der optische Sendeempfänger 536 als einen Teil des optischen Datenverbinders 534 bildend gezeigt ist, kann er einen Abschnitt der Kommunikationsschaltung 530 bilden.
  • Der Rechenknoten 500 kann auch einen Erweiterungsverbinder 540 umfassen. Der Erweiterungsverbinder 540 ist ausgebildet, mit einem entsprechenden Verbinder eines Erweiterungsschaltungsplatinensubstrats zusammenzupassen, um an den Rechenknoten 500 zusätzliche physische Ressourcen bereitzustellen. Die zusätzlichen physischen Ressourcen können zum Beispiel von den Prozessoren 520 während eines Betriebs des Rechenknotens 500 verwendet werden. Das Erweiterungsschaltungsplatinensubstrat kann im Wesentlichen ähnlich zu dem vorangehend erörterten Schaltungsplatinensubstrat 302 sein und kann verschiedene elektrische Komponenten umfassen, die daran befestigt sind. Die bestimmten elektrischen Komponenten, die an dem Erweiterungsschaltungsplatinensubstrat befestigt sind, können von der beabsichtigten Funktionalität des Erweiterungsschaltungsplatinensubstrats abhängen. Beispielsweise kann das Erweiterungsschaltungsplatinensubstrat zusätzliche Rechenressourcen, Speicherressourcen und/oder Speicherungsressourcen bereitstellen. Als solche können die zusätzlichen physischen Ressourcen des Erweiterungsschaltungsplatinensubstrats Prozessoren, Speichervorrichtungen, Speicherungsvorrichtungen und/oder Beschleunigerschaltungen, umfassend, zum Beispiel feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs), Sicherheits-Co-Prozessoren, Grafikverarbeitungseinheiten (GPUs; graphics processing units), Maschinelles-Lernen-Schaltungen oder andere spezialisierte Prozessoren, Steuerungen, Vorrichtungen und/oder Schaltungen umfassen, sind aber nicht darauf beschränkt. Es wird darauf hingewiesen, dass sich ein Verweis auf GPU oder CPU hier zusätzlich oder alternativ auf eine XPU oder xPU beziehen kann. Eine xPU kann ein oder mehrere umfassen von: eine GPU, ASIC, FPGA oder ein Beschleunigervorrichtung.
  • Bezug nehmend nun auf 6 kann der Knoten 400 als Beschleunigerknoten 600 ausgeführt sein. Der Beschleunigerknoten 600 ist ausgebildet, spezialisierte Rechenaufgaben, wie beispielsweise maschinelles Lernen, Verschlüsselung, Hashing oder andere rechenintensive Aufgaben, auszuführen. Zum Beispiel kann ein Rechenknoten 500 während des Betrieb Aufgaben an den Beschleunigerknoten 600 abgeben. Der Beschleunigerknoten 600 umfasst verschiedene Komponenten, die ähnlich zu den Komponenten des Knotens 400 und/oder des Rechenknotens 500 sind, die in 6 unter Verwendung derselben Bezugszeichen identifiziert wurden.
  • Bei dem darstellenden Beschleunigerknoten 600 sind die physischen Ressourcen 320 als Beschleunigerschaltungen 620 ausgeführt. Obgleich nur zwei Beschleunigerschaltungen 620 in 6 gezeigt sind, wird darauf hingewiesen, dass der Beschleunigerknoten 600 zusätzliche Beschleunigerschaltungen 620 umfassen kann. Die Beschleunigerschaltungen 620 können als irgendeine Art von Prozessor, Co-Prozessor, Rechenschaltung oder andere Vorrichtung, die in der Lage ist, Rechen- oder Verarbeitungsoperationen durchzuführen, ausgeführt sein. Zum Beispiel können die Beschleunigerschaltungen 620 beispielsweise als zentrale Verarbeitungseinheiten, Kerne, feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Steuerlogik (PCL; programmable control logic), Sicherheits-Co-Prozessoren, Grafikverarbeitungseinheiten (GPUs), neuromorphe Prozessoreinheiten, Quantencomputer, Maschinelles-Lernen-Schaltungen, programmierbare Verarbeitungs-Pipeline (z. B. programmierbar durch P4, C, Python, Broadcom Network Programming Language (NPL), oder x86-kompatible ausführbare Binärdateien oder andere ausführbare Binärdateien) ausgeführt sein. Prozessoren, FPGAs, andere spezialisierte Prozessoren, Steuerungen, Vorrichtungen und/oder Schaltungen können für die Paketverarbeitung oder Paketmodifikation verwendet werden. Ternärer inhaltsadressierbarer Speicher (TCAM) kann für parallele Abgleich- oder Nachschlage-Operationen an Paket-Anfangsblock- (Header) Inhalt verwendet werden.
  • Der Beschleunigerknoten 600 kann auch eine Beschleuniger-zu-Beschleuniger-Verbindung 642 umfassen. Ähnlich zu der Ressource-zu-Ressource-Verbindung 324 des vorangehend erörterten Knotens 300 kann die Beschleuniger-zu-Beschleuniger-Verbindung 642 als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Beschleuniger-zu-Beschleuniger-Kommunikationen zu ermöglichen. Die Beschleuniger-zu-Beschleuniger-Verbindung 642 kann als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem 322) ausgeführt werden. Zum Beispiel kann die Beschleuniger-zu-Beschleuniger-Verbindung 642 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. Die Beschleunigerschaltungen 620 können mit einer primären Beschleunigerschaltung 620, die durch das I/O-Teilsystem 322 mit der NIC 532 und dem Speicher 420 verbunden ist, und einer sekundären Beschleunigerschaltung 620, die durch eine primäre Beschleunigerschaltung 620 mit der NIC 532 und dem Speicher 420 verbunden ist, als Daisy-Chain verbunden sein.
  • Bezug nehmend nun auf 7 kann Knoten 400 als Speicherungsknoten 700 ausgeführt sein. Der Speicherungsknoten 700 ist ausgebildet, Daten in einer Datenspeicherung 750 zu speichern, die lokal zu dem Speicherungsknoten 700 ist. Zum Beispiel kann ein Rechenknoten 500 oder ein Beschleunigerknoten 600 im Betrieb Daten von der Datenspeicherung 750 des Speicherungsknoten 700 speichern und abrufen. Der Speicherungsknoten 700 umfasst verschiedene Komponenten, die ähnlich zu den Komponenten des Knotens 400 und/oder des Rechenknotens 500 sind, die in 7 unter Verwendung derselben Bezugszeichen identifiziert wurden.
  • Bei dem darstellenden Speicherungsknoten 700 sind die physischen Ressourcen 320 als Speicherungssteuerungen 720 ausgeführt. Obgleich nur zwei Speicherungssteuerungen 720 in 7 gezeigt sind, wird darauf hingewiesen, dass der Speicherungsknoten 700 zusätzliche Speicherungssteuerungen 1120 umfassen kann. Die Speicherungssteuerungen 720 können als irgendeine Art von Prozessor, Steuerung oder Steuerschaltung ausgeführt sein, die in der Lage ist, die Speicherung und den Abruf von Daten in die Datenspeicherung 750 basierend auf Anforderungen, die über die Kommunikationsschaltung 530 empfangen werden, zu steuern. Die Speicherungssteuerungen 720 sind als relativ Niedrig-Leistungs-Prozessoren oder -Steuerungen ausgeführt.
  • Der Speicherungsknoten 700 kann auch eine Steuerung-zu-Steuerung-Verbindung 742 umfassen. Ähnlich zu der Ressource-zu-Ressource-Verbindung 324 des vorangehend erörterten Knotens 400, kann die Steuerung-zu-Steuerung-Verbindung 742 als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Steuerung-zu-Steuerung-Kommunikationen zu ermöglichen. Die Steuerung-zu-Steuerung-Verbindung 742 ist als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem 322) ausgeführt. Zum Beispiel kann die Steuerung-zu-Steuerung-Verbindung 742 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist.
  • Bezug nehmend nun auf 8 kann der Knoten 400 als Speicherknoten 800 ausgeführt sein. Der Speicherknoten 800 ist ausgebildet, an andere Knoten 400 (z. B. Rechenknoten 500, Beschleunigerknoten 600 usw.) Zugriff auf einen Pool von Speicher (z. B. in zwei oder mehr Sätzen 830, 832 von Speichervorrichtungen 420) lokal zu dem Speicherknoten 700 bereitzustellen. Zum Beispiel kann ein Rechenknoten 500 oder ein Beschleunigerknoten 600 während des Betriebs aus der Ferne auf einen oder mehrere der Speichersätze 830, 832 des Speicherknotens 800 schreiben und/oder von diesen lesen, unter Verwendung eines logischen Adressraums, der auf physische Adressen in den Speichersätzen 830, 832 abbildet.
  • Bei dem darstellenden Speicherknoten 800 sind die physischen Ressourcen 320 als Speichersteuerungen 820 ausgeführt. Obgleich nur zwei Speichersteuerungen 820 in 8 gezeigt sind, wird darauf hingewiesen, dass der Speicherknoten 800 zusätzliche Speichersteuerungen 820 umfassen kann. Die Speichersteuerungen 820 können als irgendeine Art von Prozessor, Steuerung oder Steuerschaltung ausgeführt sein, die in der Lage ist, das Schreiben und Lesen von Daten in die Speichersätze 830, 832 basierend auf Anforderungen, die via die Kommunikationsschaltung 530 empfangen werden, zu steuern. Eine Speichersteuerung 820 ist mit einem entsprechenden Speichersatz 830, 832 verbunden, um auf die Speichervorrichtungen 420 innerhalb des entsprechenden Speichersatzes 830, 832 zu schreiben und von ihnen zu lesen, und eine Berechtigung (z. B. Lesen, Schreiben etc.) durchzusetzen, die dem Knoten 400 zugeordnet sind, der eine Anforderung an den Speicherknoten 800 gesendet hat, um eine Speicherzugriffsoperation (z. B. Lesen oder Schreiben) durchzuführen.
  • Der Speicherknoten 800 kann auch eine Steuerung-zu-Steuerung-Verbindung 842 umfassen. Ähnlich zu der Ressource-zu-Ressource-Verbindung 324 des vorangehend erörterten Knotens 400, kann die Steuerung-zu-Steuerung-Verbindung 842 als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Steuerung-zu-Steuerung-Kommunikationen zu ermöglichen. Die Steuerung-zu-Steuerung-Verbindung 842 ist als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem 322) ausgeführt. Zum Beispiel kann die Steuerung-zu-Steuerung-Verbindung 842 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. Somit kann eine Speichersteuerung 820 durch die Steuerung-zu-Steuerung-Verbindung 842 auf Speicher zugreifen, der innerhalb des Speichersatzes 832 ist, der einer anderen Speichersteuerung 820 zugeordnet ist. Eine skalierbare Speichersteuerung ist aus mehreren kleineren Speichersteuerungen, hierin als „Chiplets“ bezeichnet, auf einem Speicherknoten (z. B. dem Speicherknoten 800) hergestellt. Die Chiplets können verbunden sein (z. B. unter Verwendung einer EMIB (Embedded Multi-Die Interconnect Bridge; eingebettete Multi-Die-Verbindungsbrücke)). Die kombinierte Chiplet-Speichersteuerung kann auf eine relativ große Anzahl von Speichersteuerungen und I/O-Ports (z. B. bis zu 16 Speicherkanäle) skaliert werden. Die Speichersteuerungen 820 können eine Speicherverschachtelung implementieren (z. B. eine Speicheradresse ist auf den Speichersatz 830 abgebildet, die nächste Speicheradresse ist auf den Speichersatz 832 abgebildet und die dritte Adresse ist auf den Speichersatz 830 abgebildet usw.). Das Verschachteln kann innerhalb der Speichersteuerungen 820 oder von CPU-Sockeln (z. B. des Rechenknotens 500) über Netzwerklinks hinweg zu den Speichersätzen 830, 832 gemanagt werden und kann die Latenz, die einem Ausführen von Speicherzugriffsoperationen im Vergleich zum Zugriff auf angrenzende Speicheradressen von derselben Speichervorrichtung zugeordnet ist, verbessern.
  • Ferner kann der Speicherknoten 800 mit einem oder mehreren anderen Knoten 400 (z. B. in dem gleichen Rack 240 oder einem benachbarten Rack 240) durch einen Wellenleiter verbunden sein, unter Verwendung des Wellenleiterverbinders 880. Ein Verwenden eines Wellenleiters kann Hoher-Durchsatz-Zugriff auf den Speicherpool (z. B. die Speichersätze 830, 832) auf einen anderen Knoten (z. B. einen Knoten 400 in demselben Rack 240 oder einem benachbarten Rack 240 als der Speicherknoten 800) bereitstellen, ohne die Last auf den optischen Datenverbinder 534 zu erhöhen.
  • Bezug nehmend nun auf 9 kann ein System zum Ausführen einer oder mehrerer Arbeitslasten (z. B. Anwendungen) implementiert sein. Das System 910 umfasst einen Orchestrator-Server 920, der als ein gemanagter Knoten ausgeführt sein kann, aufweisend eine Rechenvorrichtung (z. B. einen Prozessor 520 auf einem Rechenknoten 500), die Management-Software (z. B. eine Cloudarbeitende Umgebung, wie beispielsweise OpenStack) ausführt, die kommunikativ mit mehreren Knoten 400, umfassend eine große Anzahl von Rechenknoten 930 (z. B. ein oder mehrere ähnlich zu dem Rechenknoten 500), Speicherknoten 940 (z. B. ein oder mehrere ähnlich zu dem Speicherknoten 800), Beschleunigerknoten 950 (z. B. ein oder mehrere ähnlich zu dem Speicherknoten 600), und Speicherungsknoten 960 (z. B. ein oder mehrere ähnlich zu dem Speicherungsknoten 700), gekoppelt ist. Ein oder mehrere der Knoten 930, 940, 950, 960 können in einen gemanagten Knoten 970 gruppiert sein, wie beispielsweise durch den Orchestrator-Server 920, um gemeinsam eine Arbeitslast (z. B. eine Anwendung 932, die in einer virtuellen Maschine oder in einem Container ausgeführt wird) auszuführen.
  • Der gemanagte Knoten 970 kann als eine Anordnung von physischen Ressourcen 320, wie beispielsweise Prozessoren 520, Speicherressourcen 420, Beschleunigerschaltungen 620 oder Datenspeicherung 750, von dem gleichen oder unterschiedlichen Knoten 400, ausgeführt sein. Ferner kann der gemanagte Knoten zu der Zeit, zu der dem gemanagten Knoten eine Arbeitslast zugewiesen werden soll, oder einem Zeitpunkt durch den Orchestrator-Server 920 eingerichtet, definiert oder „aufgesponnen“ werden und kann unabhängig davon existieren, ob dem gemanagten Knoten derzeit eine Arbeitslast zugewiesen wird. Der Orchestrator-Server 920 kann selektiv physische Ressourcen 320 von den Knoten 400 zuweisen und/oder die Zuweisung aufheben und/oder einen oder mehrere Knoten 400 zu dem gemanagten Knoten 970 als eine Funktion von Quality of Service- (QoS-) Zielen (z. B. ein Ziel-Durchsatz, eine Ziellatenzzeit, eine Ziel-Anzahl von Anweisungen pro Sekunde etc.), die einem Service-Level-Agreement oder einer Class-of-Service (COS oder CLOS) für die Arbeitslast (z. B. die Anwendung 932) zugeordnet sind, hinzufügen oder von demselben entfernen. Dabei kann der Orchestrator-Server 920 Telemetriedaten empfangen, die Performance-Bedingungen (z. B. Durchsatz, Latenz, Anweisungen pro Sekunde etc.) in einem Knoten 400 des gemanagten Knotens 970 anzeigen, und die Telemetriedaten mit den Quality-of-Service-Zielen vergleichen, um zu bestimmen, ob die Quality-of-Service-Ziele erfüllt werden. Der Orchestrator-Server 920 kann zusätzlich bestimmen, ob die Zuweisung einer oder mehrerer physischer Ressourcen von dem gemanagten Knoten 970 aufgehoben werden kann, während die QoS-Ziele noch erfüllt werden, wodurch diese physischen Ressourcen für eine Verwendung in einem anderen gemanagten Knoten (z. B. um eine unterschiedliche Arbeitslast auszuführen) freigegeben werden. Alternativ, wenn die QoS-Ziele derzeit nicht erfüllt sind, kann der Orchestrator-Server 920 bestimmen, zusätzliche physische Ressourcen dynamisch zuzuweisen, um bei der Ausführung der Arbeitslast (z. B. der Anwendung 932) zu helfen, während die Arbeitslast ausgeführt wird. In ähnlicher Weise kann der Orchestrator-Server 920 bestimmen, die Zuweisung physischer Ressourcen zu einem verwalteten Knoten dynamisch aufzuheben, wenn der Orchestrator-Server 920 bestimmt, dass ein Aufheben der Zuweisung der physischen Ressource dazu führen würde, dass die QoS-Ziele immer noch erreicht werden.
  • Zusätzlich kann der Orchestrator-Server 920 Trends in der Ressourcennutzung der Arbeitslast (z. B. der Anwendung 932) identifizieren, wie beispielsweise durch ein Identifizieren von Ausführungsphasen (z. B. Zeitperioden, in denen unterschiedliche Operationen, wobei eine oder mehrere unterschiedliche Ressourcennutzungscharakteristika aufweisen, ausgeführt werden) der Arbeitslast (z. B. der Anwendung 932) und durch vorausschauendes Identifizieren verfügbarer Ressourcen in dem Rechenzentrum und ein Zuweisen derselben zu dem gemanagten Knoten 970 (z. B. innerhalb einer vordefinierten Zeitperiode des zugeordneten Phasenbeginns). Der Orchestrator-Server 920 kann Performance basierend auf verschiedenen Latenzzeiten und einem Verteilungsschema modellieren, um Arbeitslasten unter Rechenknoten und anderen Ressourcen (z. B. Beschleunigerknoten, Speicherknoten, Speicherungsknoten) in dem Rechenzentrum 100 zu verteilen. Der Orchestrator-Server 920 kann beispielsweise ein Modell verwenden, das die Performance von Ressourcen auf den Knoten 400 (z. B. FPGA-Performance, Speicherzugrifflatenzzeit etc.) und die Performance (z. B. Überlastung, Latenzzeit, Bandbreite) des Pfads durch das Netzwerk zu der Ressource (z. B. FPGA) berücksichtigt. Somit kann der Orchestrator-Server 920 basierend auf der Gesamtlatenz, die einer oder mehreren potenziellen Ressource, die in dem Rechenzentrum 100 (z. B. die Latenz, die der Performance der Ressource selbst zugeordnet ist, zusätzlich zu der Latenz, die dem Pfad durch das Netzwerk zwischen dem Rechenknoten, der die Arbeitslast ausführt, und dem Knoten 400, auf dem die Ressource positioniert ist, zugeordnet ist) verfügbar ist, zugeordnet ist, bestimmen, welche Ressource(n) mit welchen Arbeitslasten verwendet werden sollten.
  • Der Orchestrator-Server 920 kann eine Karte von Wärmeerzeugung in dem Rechenzentrum 100 erzeugen, unter Verwendung von Telemetriedaten (z. B. Temperaturen, Lüftergeschwindigkeiten etc.), die von den Knoten 400 gemeldet werden, und gemanagten Knoten Ressourcen als Funktion der Karte von Wärmeerzeugung und vorhergesagter Wärmeerzeugung, die unterschiedlichen Arbeitslasten zugeordnet ist, zuweisen, um eine Zieltemperatur und Wärmeverteilung in dem Rechenzentrum 100 aufrechtzuerhalten. Zusätzlich oder alternativ dazu kann der Orchestrator-Server 920 empfangene Telemetriedaten in einem hierarchischen Modell organisieren, das eine Beziehung zwischen den gemanagten Knoten (z. B. eine räumliche Beziehung wie beispielsweise die physischen Standorte der Ressourcen der gemanagten Knoten innerhalb des Rechenzentrums 100 und/oder eine funktionale Beziehung wie beispielsweise Gruppierungen der gemanagten Knoten durch die Kunden, für die die gemanagten Knoten Dienste bereitstellen, die Arten von Funktionen, die typischerweise von den gemanagten Knoten ausgeführt werden, gemanagte Knoten, die typischerweise Arbeitslasten untereinander gemeinschaftlich verwenden oder austauschen u.a. etc.) anzeigt. Basierend auf Unterschieden bei den physischen Standorten und Ressourcen in den gemanagten Knoten kann eine gegebene Arbeitslast unterschiedliche Ressourcennutzungen (z. B. Verursachen einer unterschiedlichen, internen Temperatur, Verwenden eines unterschiedlichen Prozentsatzes von Prozessor- oder Speicherkapazität) über die Ressourcen von unterschiedlichen gemanagten Knoten hinweg aufzeigen. Der Orchestrator-Server 920 kann die Unterschiede basierend auf den Telemetriedaten bestimmen, die in dem hierarchischen Modell gespeichert sind, und die Unterschiede in eine Vorhersage einer zukünftigen Ressourcennutzung einer Arbeitslast einfließen lassen, falls die Arbeitslast von einem gemanagten Knoten einem anderen gemanagten Knoten neu zugewiesen wird, um die Ressourcennutzung in dem Rechenzentrum 100 genau auszubalancieren. Der Orchestrator-Server 920 kann Muster in den Ressourcennutzungsphasen der Arbeitslasten identifizieren und die Muster zur Vorhersage zukünftiger Ressourcennutzung der Arbeitslasten verwenden.
  • Um die Rechenlast auf dem Orchestrator-Server 920 und die Datenübermittlungslast auf dem Netzwerk zu reduzieren, kann der Orchestrator-Server 920 Selbsttestinformationen an die Knoten 400 senden, um es einem Knoten 400 zu ermöglichen, lokal (z. B. auf dem Knoten 400) zu bestimmen, ob Telemetriedaten, die durch den Knoten 400 erzeugt wurden, eine oder mehrere Bedingungen (z. B. eine verfügbare Kapazität, die eine vorbestimmte Schwelle erfüllt, eine Temperatur, die eine vorbestimmte Schwelle erfüllt, etc.) erfüllen. Ein Knoten 400 kann dann ein vereinfachtes Ergebnis (z. B. Ja oder Nein) an den Orchestrator-Server 920 zurückmelden, was der Orchestrator-Server 920 bei dem Bestimmen der Zuordnung von Ressourcen zu gemanagten Knoten nutzen kann.
  • Hierin beschriebene Beispiele können in einem Rechenzentrum oder disaggregierten Composite Nodes verwendet werden. Die hier beschriebenen Techniken können sowohl auf disaggregierte als auch auf herkömmliche Serverarchitekturen angewendet werden. Ein herkömmlicher Server kann eine CPU, XPU, eine oder mehrere Speichervorrichtungen, Netzwerk, das mit einer oder mehreren Schaltungsplatinen innerhalb eines Servers kommunikativ gekoppelt ist, umfassen.
  • EDGE-NETZWERK
  • Edge Computing bezieht sich allgemein auf die Implementierung, Koordinierung und Verwendung von Computing und Ressourcen an Standorten, die näher an dem „Edge“ (Rand) oder einer Sammlung von „Edges“ (Rändern) des Netzwerks sind. Der Zweck dieser Regelung ist es, die Gesamtbetriebskosten zu verbessern, die Anwendungs- und Netzwerk-Latenzzeiten zu reduzieren, den Netzwerk-Backhaul-Verkehr und zugeordneten Energieverbrauch zu reduzieren, die Dienstfähigkeiten zu verbessern und die Einhaltung von Sicherheits- und Datenschutz-Anforderungen zu verbessern (insbesondere im Vergleich zu herkömmlichem Cloud Computing). Komponenten, die Edge-Computing-Operationen durchführen können („Edge-Knoten“), können sich an irgendeinem Standort befinden, der für die Systemarchitektur oder den Ad-hoc-Dienst erforderlich ist (z. B. in einem Hochperformancerechenzentrum oder einer Cloud-Installation, einem ausgewiesenen Edge-Knoten-Server, einem Unternehmensserver, einem Server am Straßenrand, einer Telekom-Zentrale oder einer lokalen oder gleichrangigen Vorrichtung, die bedient wird und Edge-Dienste in Anspruch nimmt).
  • Bei den darstellenden, nachstehend beschriebenen Edge-Networking-Systemen werden die Rechen- und Speicherungsressourcen näher an den Rand des Netzwerks verlegt (z. B. näher an die Clients, Endpunktvorrichtungen oder „Dinge“). Durch die Verlagerung der Rechen- und Speicherungsressourcen in die Nähe der Vorrichtung, die die Daten erzeugt oder verwendet, können im Vergleich zu einem standardmäßig vernetzten (z. B. Cloud Computing-) System verschiedene Einschränkungen in Bezug auf Latenzzeiten, Konformität und/oder Geld- oder Ressourcenkosten erreicht werden. Zu diesem Zweck können bei einigen Beispielen Pools von Rechen-, Speicher- und/oder Speicherungsressourcen in lokalen Servern, Routern und/oder anderer Netzwerkausrüstung untergebracht oder anderweitig damit ausgestattet sein. Solche lokalen Ressourcen erleichtern es, die dem System auferlegten Beschränkungen zu erfüllen. Die lokalen Rechen- und Speicherungsressourcen ermöglichen es einem Edge-System beispielsweise, Berechnungen in Echtzeit oder nahezu in Echtzeit durchzuführen, was in Geringe-Latenzzeit-Anwendungsfällen wie autonomes Fahren, Videoüberwachung und mobiler Medienkonsum berücksichtigt werden kann. Darüber hinaus profitieren diese Ressourcen vom Servicemanagement in einem Edge-System, das die Möglichkeit bereitstellt, lokale Service-Level-Agreements (SLAs) oder Service-Level-Objectives (SLOs) zu skalieren und zu erreichen, abgestufte Serviceanforderungen zu managen und lokale Merkmale und Funktionen vorübergehend oder dauerhaft zu aktivieren.
  • Ein Pool kann eine Vorrichtung auf demselben Gehäuse oder verschiedene physisch verteilte Vorrichtungen auf verschiedenen Gehäusen oder verschiedenen Racks umfassen. Ein Ressourcenpool kann homogene Prozessoren, homogene Prozessoren und/oder einen Speicherpool umfassen.
  • Ein beispielhaftes Edge-Computing-System kann verschiedene Dienste für Endpunktvorrichtungen (z. B. Client-Benutzerendgeräte (UEs; user equipment)) unterstützen und/oder bereitstellen, von denen eines oder mehrere unterschiedliche Anforderungen oder Beschränkungen aufweisen können. Beispielsweise können einige Dienste Prioritäts- oder Quality-of-Service- (QoS-; Dienstgüte) Beschränkungen (z. B. können Verkehrsdaten für autonome Fahrzeuge eine höhere Priorität als Temperatursensordaten aufweisen), Zuverlässigkeit und Ausfallsicherheit (z. B. können Verkehrsdaten eine unternehmenskritische Zuverlässigkeit erfordern, während Temperaturdaten eine gewisse Fehlervarianz zulassen können) sowie Leistungs-, Kühlungs- und Formfaktorbeschränkungen aufweisen. Diese und andere technische Zwänge können bei der Anwendung in dem Multi-Stakeholder-Umfeld erhebliche Komplexität und technische Herausforderungen mit sich bringen.
  • 10 zeigt allgemein ein Edge-Rechensystem 1000 zur Bereitstellung von Edge-Diensten und -Anwendungen für Multi-Stakeholder-Entitäten, die auf einen oder mehrere Client-Rechenknoten 1002, einen oder mehrere Edge-Gateway-Knoten 1012, einen oder mehrere Edge-Aggregationsknoten 1022, ein oder mehrere Kernrechenzentren 1032 und eine globale Netzwerk-Cloud 1042 verteilt sind. Die Implementierung des Edge-Rechensystems 1000 kann bei einem oder im Namen eines Telekommunikationsdienstanbieters („Telco“ oder „TSP“), eines Internetof-Things-Dienste-Anbieters, eines Cloud-Dienst-Anbieters (CSP), einer Unternehmenseinheit oder irgendeiner anderen Anzahl von Entitäten bereitgestellt sein. Verschiedene Implementierungen und Konfigurationen des Systems 1000 können dynamisch bereitgestellt werden, z. B. wenn sie zur Erfüllung von Servicezielen orchestriert werden.
  • Beispielsweise befinden sich die Client-Rechenknoten 1002 auf einer Endpunkt-Ebene, während die Edge-Gateway-Knoten 1012 auf einer Edge-Vorrichtungen-Ebene (lokale Ebene) des Edge-Rechensystems 1000 angeordnet sind. Darüber hinaus befinden sich die Edge-Aggregationsknoten 1022 (und/oder die Fog-Vorrichtungen 1024, falls sie mit oder unter einer Fog-Netzwerk-Konfiguration 1026 angeordnet oder betrieben werden) auf einer Netzwerkzugriffsebene (einer Zwischenebene). Fog Computing (oder „Fogging“) bezieht sich im Allgemeinen auf die Ausweitung des Cloud Computing auf den Rand (edge) des Netzwerks eines Unternehmens oder auf die Fähigkeit, Transaktionen über die Cloud-/Edge-Landschaft hinweg zu managen, typischerweise in einem koordinierten verteilten oder Mehrknoten-Netzwerk. Einige Formen des Fog Computing stellen den Einsatz von Rechen-, Speicherungs- und Netzwerk-Diensten zwischen End-Vorrichtungen und Cloud Computing-Rechenzentren im Namen der Cloud Computing-Standorte bereit. Einige Formen des Fog Computing stellen auch die Möglichkeit bereit, die Arbeitslast-/Arbeitsablauf-Ebene-Dienste im Hinblick auf die Gesamttransaktion zu managen, indem bestimmte Arbeitslasten basierend auf der Fähigkeit, das gesamte Service-Level-Agreement zu erfüllen, an den Rand oder in die Cloud verschoben werden. Fog Computing stellt in vielen Szenarien eine dezentrale Architektur bereit und dient als Erweiterung des Cloud Computing, indem es mit einer oder mehreren Edge-Knoten-Vorrichtungen zusammenarbeitet und den Endvorrichtungen die nachfolgende Menge an lokalisierter Steuerung, Konfiguration und Management und vieles mehr bereitstellt. Daher stellen einige Formen des Fog Computing Operationen bereit, die mit dem hier beschriebenen Edge Computing übereinstimmen; die hier erörterten Aspekte des Edge Computing sind auch auf Fog-Netzwerke, Fogging und Fog-Konfigurationen anwendbar. Darüber hinaus können Aspekte der hier erörterten Edge-Rechensysteme als Fog ausgebildet sein, oder Aspekte eines Fog können in eine Edge-Rechenarchitektur integriert werden.
  • Das Kernrechenzentrum 1032 befindet sich auf einer Kernnetzwerkebene (einer regionalen oder geografisch zentralen Ebene), während sich die globale Netzwerk-Cloud 1042 auf einer Cloud-Rechenzentrumsebene (einer nationalen oder weltweiten Ebene) befindet. Die Verwendung des Begriffs „Kern“ ist als Bezeichnung für einen zentralisierten Netzwerkstandort - tiefer in dem Netzwerk - bereitgestellt, auf den mehrere Edge-Knoten oder -Komponenten zugreifen können; ein „Kern“ bezeichnet jedoch nicht unbedingt das „Zentrum“ oder den tiefsten Standort des Netzwerks. Dementsprechend kann sich das Kernrechenzentrum 1032 innerhalb, auf oder in der Nähe der Edge-Cloud 1000 befinden. Obwohl eine illustrative Anzahl von Client-Rechenknoten 1002, Edge-Gateway-Knoten 1012, Edge-Aggregationsknoten 1022, Edge-Kernrechenzentren 1032 und globalen Netzwerkwolken 1042 in 10 gezeigt sind, ist zu beachten, dass das Edge-Rechensystem 1000 zusätzliche Vorrichtungen oder Systeme auf einer oder mehreren Ebenen umfassen kann. Vorrichtungen auf einer Ebene können als Peer-Knoten für andere ausgebildet werden und dementsprechend kooperativ handeln, um die Serviceziele zu erfüllen.
  • In Übereinstimmung mit den hier bereitgestellten Beispielen kann ein Client-Rechenknoten 1002 als irgendeine Art von Endpunkt-Komponente, -Vorrichtung, -Anwendung (-Appliance) oder andere -Sache (thing) ausgeführt werden, die in der Lage ist, als Produzent oder Konsument von Daten zu kommunizieren. Ferner bedeutet die Bezeichnung „Knoten“ (node) oder „Vorrichtung“ (device), wie sie in dem Edge-Rechensystem 1000 verwendet wird, nicht notwendigerweise, dass ein solcher Knoten oder eine solche Vorrichtung in einer Client- oder Agenten-/Minion-/Follower-Rolle arbeitet; vielmehr beziehen sich ein oder mehrere der Knoten oder Vorrichtungen in dem Edge-Rechensystem 1000 auf einzelne Entitäten, Knoten oder Teilsysteme, die diskrete oder verbundene Hardware- oder Softwarekonfigurationen umfassen, um die Edge-Cloud 1000 zu erleichtern oder zu verwenden.
  • Somit ist die Edge-Cloud 1000 aus Netzwerkkomponenten und Funktionsmerkmalen, die von und innerhalb der Edge-Gateway-Knoten 1012 und der Edge-Aggregationsknoten 1022 betrieben werden, gebildet. Die Edge-Cloud 1000 kann als irgendeine Art von Netzwerk ausgeführt werden, das Edge-Computing- und/oder Speicherungs-Ressourcen bereitstellt, die sich in unmittelbarer Nähe zu Funkzugriffsnetzwerk- (RAN-; radio access network) fähigen Endpunktvorrichtungen (z. B. mobilen Rechenvorrichtungen, IoT-Vorrichtungen, intelligenten Vorrichtungen usw.) befinden, die in 10 als die Client-Rechenknoten 1002 dargestellt sind. Anders ausgedrückt, die Edge-Cloud 1000 kann als „Edge“ betrachtet werden, die die Endpunktvorrichtungen und herkömmliche Netzwerkzugriffspunkte miteinander verbindet, die als Eingangspunkt in die Dienstanbieter-Kernnetzwerke dient, umfassend der Mobilfunkanbieter-Netzwerke (z. B. Global System for Mobile Communications- (GSM-) Netzwerke, Long-Term Evolution- (LTE-) Netzwerke, 5G/6G-Netzwerke usw.), wobei sie auch Speicherungs- und/oder Rechenfunktionen bereitstellt. Andere Arten und Formen des Netzwerkzugriffs (z. B. Wi-Fi, Langbereich-Drahtlos, drahtgebundene Netzwerke umfassend optische Netzwerke) können auch anstelle von oder in Kombination mit solchen 3GPP-Trägernetzwerken verwendet werden.
  • Bei einigen Beispielen kann die Edge-Cloud 1000 einen Abschnitt einer Fog-Netzwerk-Konfiguration 1026 (z. B. ein Netzwerk von Fog-Vorrichtungen 1024, nicht im Detail gezeigt) bilden oder anderweitig einen Eintrittspunkt in oder über eine solche Konfiguration hinweg bereitstellen, die als horizontale und verteilte Architektur auf Systemebene ausgeführt werden kann, die Ressourcen und Dienste zur Ausführung einer bestimmten Funktion verteilt. So kann beispielsweise ein koordiniertes und verteiltes Netzwerk von Fog-Vorrichtungen 1024 im Kontext einer IoT-Systemanordnung Rechen-, Speicherungs-, Steuer- oder Netzwerk- (Networking-) Aspekte übernehmen. Andere vernetzte, aggregierte und verteilte Funktionen können in der Edge Cloud 1000 zwischen dem Kernrechenzentrum 1032 und den Client-Endpunkten (z. B. Client-Rechenknoten 1002) vorhanden sein. Einige davon werden in den folgenden Abschnitten im Kontext mit Netzwerkfunktionen oder der Dienst-Virtualisierung erörtert, umfassend die Verwendung virtueller Edges und virtueller Dienste, die für mehrere Stakeholder (Beteiligte) orchestriert werden.
  • Wie im Folgenden näher erörtert, arbeiten die Edge-Gateway-Knoten 1012 und die Edge-Aggregationsknoten 1022 zusammen, um an die Client-Rechenknoten 1002 verschiedene Edge-Dienste und Sicherheit bereitzustellen. Da ein Client-Rechenknoten 1002 stationär oder mobil sein kann, kann ein jeweiliger Edge-Gateway-Knoten 1012 mit anderen Edge-Gateway-Vorrichtungen zusammenarbeiten, um aktuell bereitgestellte Edge-Dienste, relevante Servicedaten und Sicherheit zu verbreiten, während sich der entsprechende Client-Rechenknoten 1002 in einer Region bewegt. Zu diesem Zweck können die Edge-Gateway-Knoten 1012 und/oder Edge-Aggregationsknoten 1022 Multi-Tenancy- und Multiple-Stakeholder-Konfigurationen unterstützen, bei denen Dienste von mehreren Dienstanbietern, Eigentümern und mehreren Verbrauchern unterstützt und über eine einzige oder mehrere Rechenvorrichtungen koordiniert werden können (oder für diese gehostet werden).
  • Innerhalb der Architektur der Edge-Cloud 1000 kann eine Vielzahl von Sicherheitsansätzen genutzt werden. In einer Multi-Stakeholder-Umgebung kann es mehrere ladbare Sicherheitsmodule (LSMs; loadable security modules) geben, die für die Bereitstellung von Richtlinien zur Durchsetzung der Interessen der Stakeholder verwendet werden. Durchsetzungspunktumgebungen könnten mehrere LSMs unterstützen, die die Kombination geladener LSM-Richtlinien anwenden (z. B. wenn die am stärksten eingeschränkte wirksame Richtlinie angewendet wird, wie beispielsweise, wenn einer oder mehrere der Stakeholder A, B oder C den Zugriff beschränken, dann wird der Zugriff beschränkt). Innerhalb der Edge Cloud 1000 können eine oder mehrere Edge-Entitäten LSMs bereitstellen, die die Interessen der Edge-Entität durchsetzen. Die Cloud-Entität kann LSMs bereitstellen, die die Interessen der Cloud-Entität durchsetzen. Ebenso können die verschiedenen Fog- und IoT-Netzwerk-Entitäten LSMs bereitstellen, die die Interessen der Fog-Entität durchsetzen.
  • 11 zeigt ein Beispiel, bei dem verschiedene Client-Endpunkte 1110 (in der Form von Mobilgeräten, Computern, autonomen Fahrzeugen, Geschäftsrechenausrüstung, industriellen Verarbeitungsanlagen) Anfragen 1120 für Dienste oder Datentransaktionen stellen und Antworten 1130 für die Dienste oder Datentransaktionen an und von der Edge-Cloud 1100 (z. B. über ein drahtloses oder drahtgebundenes Netzwerk 1140) empfangen. Innerhalb der Edge-Cloud 1000 kann der CSP verschiedene Rechen- und Speicherungsressourcen einsetzen, wie z. B. Edge-Inhaltsknoten 1150, um gecachten (zwischengespeicherten) Inhalt aus einem verteilten Content-Delivery- (Inhaltslieferungs-) Netzwerk bereitzustellen. Andere verfügbare Rechen- und Speicherungsressourcen, die auf den Edge-Inhaltsknoten 1150 verfügbar sind, können zur Ausführung anderer Dienste und zur Erfüllung anderer Arbeitslasten verwendet werden. Die Edge-Inhaltsknoten 1150 und andere Systeme der Edge-Cloud 1000 sind mit einer Cloud oder einem Rechenzentrum 1170 verbunden, das ein Backhaul-Netzwerk 1160 verwendet, um Höhere-Latenzzeit-Anfragen von einer Cloud/einem Rechenzentrum für Websites, Anwendungen, Datenbankserver usw. zu erfüllen.
  • Die hier beschriebenen Beispiele können in einem oder mehreren Beispielen der 1-11 verwendet werden, um Ressourcen zur Ausführung eines oder mehrerer Abschnitte, Stufen oder Schichten einer Arbeitslast basierend auf einer Komplexitätsabschätzung aus einer Vorverarbeitung von der Arbeitslast zugeordneten Daten zuzuweisen.
  • VORVERARBEITUNG DER DATEN ZUR BESTIMMUNG DER RESSOURCEN
  • 12 zeigt ein beispielhaftes Edge-Cloud-Basisstationssystem. Mehrere virtuelle Netzwerkfunktionen (VNFs; virtual network functions) und Dienste werden auf verschiedenen Vorrichtungen und gepoolten Beschleunigern ausgeführt. Durch dynamische Plattformressourcenzusammenstellungen, wie z. B. Composite Nodes, können Dienste Zugriff auf verschiedene Beschleuniger mit unterschiedlichen Rechen- und Quality-of-Service- (QoS-) Eigenschaften aufweisen. In diesem Kontext können das Künstliche-Intelligenz- (KI-, engl. AI, artificial intelligence), Training und die Inferenzverarbeitung von Beschleunigervorrichtungen in Virtuell-Edge-Anwendungen durchgeführt werden. In einigen Fällen kann die Orchestrierung und das Ressourcenmanagement zur Erbringung von Diensten gemäß QoS unter Verwendung von Software hinsichtlich Skalierung begrenzt sein, wenn eine Anzahl der Dienste zunimmt, und möglicherweise nicht die Echtzeit-Performanceanforderungen gemäß der geltenden QoS erfüllen. Anders ausgedrückt, mit zunehmender Anzahl und Vielfalt der verfügbaren Beschleuniger und Rechenoptionen erreicht das Management der Performance von Diensten, wenn eine Reihe von verfügbaren Beschleunigern und Rechenoptionen verfügbar ist, möglicherweise nicht die gewünschte Zeit bis zum Abschluss. Ein oder mehrere Beispiele hierin können in einer Kommunikationsbasisstation verwendet werden, wie z. B. einer 5G-Basisstation, aber nicht darauf beschränkt.
  • Eine Plattformarchitektur kann ausgebildet sein, Metadaten zu erzeugen, die auf die Verarbeitungsressourcen hinweisen, die für die nachfolgende Datenverarbeitung zuzuweisen sind, um die anwendbare QoS zu erreichen. Eine Arbeitslastanforderung kann die Ausführung einer oder mehrerer Zeitplanungsrichtlinien auslösen, um einen oder mehrere Beschleuniger und andere Vorrichtungsressourcen auszuwählen, die für die Durchführung einer bestimmten Stufe einer mehrstufigen Datenverarbeitung basierend auf einem QoS oder Service Level Agreement (SLA) zugewiesen werden. Es kann ein Grad der Komplexität für die Verarbeitung von Daten in einer nachfolgenden Ebene oder Schicht und die Ausgabe von Metadaten bestimmt oder geschätzt werden. Metadaten können einen geschätzten Grad der Komplexität oder Umfang der Berechnungen zur Ausführung einer nachfolgenden Verarbeitungsebene oder -schicht angeben. So kann ein neuronales Netzwerk beispielsweise verschiedene Schichten aufweisen, die unterschiedliche Hardwareressourcen zur Vervollständigung einer Verarbeitungsschicht verwenden, und die Vorverarbeitungsdaten einer Arbeitslastanforderung können verschiedene Hardwareressourcenkonfigurationen identifizieren, die zur Ausführung der Verarbeitungsschicht innerhalb der geltenden QoS oder SLA verwendet werden können. Für eine bestimmte Verarbeitungsebene kann der Ressourcenverbrauch von der Ebene der auszuführenden Berechnungen abhängen, und die Vorverarbeitung der Daten kann eine Ebene der Berechnungen identifiziert, die für Ausführung der Verarbeitung der Ebene zuzuweisen ist. Die Latenzzeit für einen Abschluss einer Schicht kann von dem/den ausgewählten Beschleuniger(n) oder Rechenvorrichtungen und der Belastung des/der ausgewählten Beschleuniger(s) oder Rechenvorrichtungen abhängen.
  • So können beispielsweise Beispiele für Künstliche-Intelligenz- (KI-) Inferenzlösungen verwendet werden, bei denen die Komplexität der Phase N+1 typischerweise von der Verarbeitung in der Phase N abhängt. Verschiedene Beispiele für KI-Inferenz umfassen, sind aber nicht beschränkt auf: Überwachungsoperationen, bei denen die Personendetektion in der Phase N und die Personenidentifizierung in der Phase N+1 erfolgt; Smart Cities (intelligente Städte), bei denen die Fahrzeugdetektion in der Phase N und die Kennzeichenidentifizierung in der Phase N+1 erfolgt; und Sprachanalyse, bei der Sprache-zu-Text in der Phase N und die Natürliche-Sprache-Verarbeitung (NLP; natural language processing) in der Phase N+1 erfolgt.
  • 13 zeigt ein beispielhaftes System. Während, vor oder nach einer Verarbeitungsstufe einer oder mehrerer Verarbeitungsstufen kann die Komplexität einer nachfolgenden Verarbeitungsstufe geschätzt und bestimmt werden, und die Komplexitätsbestimmung kann an einen Zeitplaner bereitgestellt werden, um die zu verwendenden Hardwareressourcen zur Durchführung der nachfolgenden Verarbeitungsstufe zu bestimmen. Die Vorverarbeitung kann für ein KI- oder Maschinelles-Lernen (ML-; machine learning) neuronales Netzwerk durchgeführt werden, das mehrere Schichten nutzt, und vor der Planung von Hardwareressourcen zur Durchführung der einer Schicht zugeordneten Verarbeitung.
  • Eine Arbeitsanforderung, die an einer Plattform empfangen oder an der Plattform ausgeht, kann einen KI-Modelltyp, der zugeordnet ist, um für die Anforderung ausgeführt zu werden, und ein SLA identifizieren. Das SLA kann ein oder mehrere angeben von: KI-Modelltyp, Zeit bis zum Abschluss eines Vorverarbeitungsmodells, Zeit bis zum Abschluss der Verarbeitung und die Bereitstellung der Daten nach einer bestimmten Verarbeitungsschicht oder -stufe, minimale Rechenressourcen, zuzuweisende minimale Netzwerkschnittstellen-Bandbreite, minimale Rechenressourcen, minimale Speicher-Lese- oder Schreib-Raten. Beispiele für Arten von Zieloperationen umfassen, sind aber nicht beschränkt auf: Personendetektion, Objektdetektion, Musikdetektion und so weiter. Ansprechend auf den Empfang einer Anforderung zur Durchführung von KI- oder ML-Inferenz kann der Komplexitätsschätzer 1302 ein Vorverarbeitungsmodell identifizieren, das für die von der Anforderung angezielte Operation auszuführen ist. Wenn die Anforderung beispielsweise anzeigt, dass ein KI-Modelltyp die Identifizierung einer Person umfasst, könnte der Komplexitätsschätzer 1302 ein zugeordnetes Vorverarbeitungsmodell der Personendetektion identifizieren und Eingaben für das Personendetektionsmodell bereitstellen, die einen Zeiger auf eine zu verarbeitende Nutzlast und einen SLA-Parameter für die Beschleunigungsfunktion umfassen.
  • Durch die Durchführung des Vorverarbeitungsmodells kann der Komplexitätsschätzer 1302 Hardwareressourcen identifizieren, um eine nachfolgende Schicht oder Stufe durchzuführen, um das bereitgestellte SLA von verschiedenen Hardwareressourcen zu erfüllen (z. B. FPGA-Beschleuniger, Speicher, Netzwerk, CPU, XPU, GPU, IPU, DPU und so weiter), was von der Plattform aus zugänglich ist. Der Komplexitätsschätzer 1302 kann Metadaten ausgeben, die einen Komplexitätsgrad für eine oder mehrere für die Anforderung durchgeführte Schichten anzeigen. Ein Komplexitätsgrad kann die Zielpriorität und die geschätzte Laufzeit 1304 sowie die geschätzten Ressourcen 1306 umfassen. Die Zielpriorität und die geschätzte Laufzeit 1304 können beispielsweise eine oder mehrere Vorrichtungen und eine Zeit bis zum Abschluss einer nachfolgenden Phase anzeigen. Die Zielpriorität und die geschätzte Laufzeit 1304 können beispielsweise anzeigen, dass die Beschleunigervorrichtung Accel0 die Verarbeitung einer nachfolgenden Phase in 10 Millisekunden (ms) abschließen kann, die Beschleunigervorrichtung Accell die Verarbeitung einer nachfolgenden Phase in 15 ms abschließen kann und eine CPU die nachfolgende Phase in 100 ms abschließen kann. Die geschätzten Ressourcen 1306 können z. B. anzeigen, welche Hardwareressourcen zuzuweisen sind, um die nachfolgende Phase in der angegebenen Zeit abzuschließen, um die Verarbeitung abzuschließen. Beispielsweise kann Accel0 die Zuweisung von N Beschleunigern und M Speicherbandbreite nutzen, um die Verarbeitung einer nachfolgenden Phase in 10 ms abzuschließen; Accell kann die Zuweisung von P Beschleunigern und Q Speicherbandbreite nutzen, um die Verarbeitung einer nachfolgenden Phase in 15 ms abzuschließen; und die Verwendung einer CPU kann R Kerne, die bei S Frequenz laufen, und T Speicherbandbreite nutzen, um die Verarbeitung einer nachfolgenden Phase in 100 ms abzuschließen.
  • Ein Lastausgleicher 1308 kann aus identifizierten Vorrichtungsressourcenzuweisungen Metadaten auswählen, die eine oder die mehreren Hardwareressourcen zur Durchführung der Operationen zuweisen. Der Lastausgleicher 1308 kann eine oder mehrere Richtlinien basierend auf einem anwendbaren SLA implementieren, um eine oder mehrere in den Metadaten identifizierte Hardwareressourcen auszuwählen, um die angezielte beschleunigte Operation durchzuführen. Der Lastausgleicher 1308 kann Telemetriedaten von Hardwareressourcen empfangen und einen Grad von verfügbaren Ressourcen bestimmen (z. B. Speicher- oder Speicherungsplatz-Verfügbarkeit, Speicherbandbreite-Verfügbarkeit, Rechenkapazität, Anzahl der verfügbaren Kerne, Beschleunigerressourcen-Verfügbarkeit, Netzwerkvorrichtungs-Bandbreiten-Verfügbarkeit, Vorrichtungstemperaturen und ob die Temperaturen nahe an den Grenzwerten liegen usw.). Der Lastausgleicher 1308 kann die Ressourcenanforderungen für die Durchführung einer nächsten Phase abschätzen und entscheiden, welche der verfügbaren Hardwareressourcen minimale verfügbare Ressourcen aufweist.
  • 14 zeigt ein beispielhaftes System. Der Lastausgleicher 1404 zur Vorverarbeitung einer Arbeitslast und zur Identifizierung einer oder mehrerer Kombinationen von Hardwareressourcen und -konfigurationen zur Durchführung einer oder mehrerer Operationen von Schichten einer mehrstufigen Datenverarbeitung, um zu versuchen, anwendbare SLA-Parameter zu erreichen, die der einen oder den mehreren Schichten zugeordnet sind. Bei einigen Beispielen können dieselben oder verschiedene Implementierungen (z. B. unterschiedlicher Microservice oder Software) einer Schicht von verschiedenen Vorrichtungen ausgeführt werden. Der Lastausgleicher 1404 kann beispielsweise implementiert sein in einem oder mehreren von: CPU, GPU, GPGPU, XPU, Quick Assist Technology (QAT), Hardware Queue Manager (HQM), Work Scheduler, IPU, NIC, SmartNIC, Software, Container, virtuelle Maschine oder irgendeinem anderen Teil einer Plattform.
  • Die Schnittstelle 1406 kann von einem Betriebssystem oder Treiber aus zugänglich sein und von irgendeinem Software-Stack aus zugänglich sein. Die Schnittstelle 1406 kann es einem Anforderer (z. B. Vorrichtung, Orchestrator, Anwendung, Container, virtuelle Maschine (VM) und so weiter) ermöglichen, eines oder mehrere anzugeben von: (a) Modell-Identifizierer (ID; identifier); (b) Modelltyp; oder (c) einen Bitstrom oder eine Binärdatei, die diesem Modell zugeordnet ist. Die Schnittstelle 1406 kann zum Beispiel eine Anwendungsprogrammschnittstelle (API; application program interface), eine Befehlszeilenschnittstelle (CLI; command line interface), ein Skript, eine Binärdatei, einen Kernel und so weiter umfassen. Ein Modelltyp könnte zum Beispiel Personendetektion, Objektdetektion, Sprache-zu-Text, Bilderkennung und so weiter sein. Bei einigen Beispielen könnte der Typ ein eindeutiger ID-Typ sein, der verwendet wird, um die Anforderung mit einem Bitstrom abzugleichen. Der Bitstrom könnte mit der Anforderung bereitgestellt werden oder auf diesen durch einen Zeiger aus dem Speicher zugegriffen werden. Der Bitstrom kann Daten umfassen, die einen Kernel definieren, der von einer Vorrichtung (z. B. den Beschleunigern 0 bis 2) ausführbar ist, um eine oder mehrere Operationen durchzuführen. So kann ein Bitstrom beispielsweise Anweisungen zur Durchführung einer kryptografischen Operation (z. B. Verschlüsselung oder Entschlüsselung), einer arithmetischen Operation, einer Hashing-Operation und/oder anderer Operationen umfassen. Ein Anforderer kann eines oder mehrere bereitstellen von: (i) Zeiger auf die der Anforderung zugeordnete Nutzlast; (ii) zugeordnetes SLA für die ausgelagerte Verarbeitungsoperation; (iii) Modelltyp, der einer Vorverarbeitungsphase zugeordnet ist; und/oder (iv) Zeiger auf einen Speicherbereich, in dem das Ergebnis der Vorverarbeitung zu speichern ist und in dem der Lastausgleicher oder Beschleuniger die durch die Vorverarbeitung erzeugten Metadaten abrufen kann. Die Transaktion oder Anforderung kann Teil einer Dienstfunktionskette (SFC; service function chain) sein, die eine Abfolge von Operationen oder bei einigen Beispielen einen Microservice umfasst.
  • Die Modelle Cache und Tabelle 1408 können die mit der Anforderung bereitgestellten Informationen speichern. Bei Beispielen können die Modelle Cache und Tabelle 1408 ein Modell registrieren, indem ein Modell-Identifizierer (ID) und sein ausführbarer Bitstrom identifiziert werden. Bei einigen Beispielen können verschiedene Binärdateien auf verschiedenen Beschleunigervorrichtungen ausgeführt werden, und dementsprechend können mehrere Binärdateien einem bestimmten Modelltyp zugeordnet sein.
  • Die Schnittstelle 1406 kann Transaktionen oder Anforderungen von einem oder mehreren Anforderern in eine Warteschlange zwischen den Warteschlangen 0 bis X stellen, um eine Abfolge von auszuführenden Aufträgen zu speichern. Bei einigen Beispielen kann eine Warteschlange einem oder mehreren Beschleunigern unter den Beschleunigern 1450-0 bis 1450-2 zugeordnet sein. Obwohl drei Beschleuniger gezeigt sind, kann irgendeine Anzahl von Beschleunigern oder anderen Vorrichtungen verwendet werden.
  • Der Beschleuniger zur Durchführung der Komplexitätsbestimmung 1410 kann eine Binärdatei eines Vorverarbeitungsmodells ausführen. Der Beschleuniger zur Durchführung der Komplexitätsbestimmung 1410 kann als irgendein hier beschriebener Prozessortyp implementiert werden. Zum Beispiel kann eine Binärdatei eine zu messende Komplexität anzeigen und einen Komplexitätsfaktor ausgeben. Der Komplexitätsfaktor kann Hardwareressourcenzuweisungen angeben, die zur Erfüllung eines SLA für verschiedene Arten von Hardwarevorrichtungen, wie z. B. Ausführung auf GPU, FPGA, CPU und so weiter, erforderlich sind.
  • Die Eingaben in das Vorverarbeitungsmodell können die zu verarbeitende Nutzlast, die relevanten SLA-Parameter und einen Zeiger auf einen Speicherbereich, in dem Metadaten zu speichern sind, umfassen. Metadaten können eine oder mehrere Konfigurationen von Ressourcen anzeigen, um das bereitgestellte SLA basierend auf den verschiedenen, mit der Plattform verbundenen Vorrichtungen und Beschleunigern zu erfüllen. Die Metadaten können beispielsweise einen Komplexitätsfaktor umfassen, der eine Konfiguration von Rechenressourcen anzeigt, die für den Abschluss einer Arbeit (work) basierend auf einem anwendbaren SLA verwendet werden könnten. Beispielsweise kann für einen Datensatz, der durch die Vorverarbeitung als nicht spärlich (sparse) identifiziert wurde, eine nächste Schicht auf einer CPU ausgeführt werden, um ein SLA zu erfüllen, während für einen Datensatz, der durch die Vorverarbeitung als spärlich identifiziert wurde, eine nächste Schicht auf einem Beschleuniger (z. B. FPGA) ausgeführt werden kann.
  • Der Beschleuniger 1410 kann eine Anforderung nach Vorverarbeitung der Anforderung und ihrer Daten in eine Warteschlange einreihen, um eine Komplexität eines Auftrags in einer entsprechenden Warteschlange zu bestimmen. Metadaten können in eine Warteschlange zwischen den Warteschlangen 0 bis X für den Zugriff durch eine oder mehrere Hardwareressourcen eingereiht werden. Ein Satz von Warteschlangen kann für die Speicherung einer bereits vorverarbeiteten Anforderung für die verschiedenen Modelltypen (z. B. KI-Modelle) zugeordnet werden. Bei einigen Beispielen kann eine einzige Warteschlange verwendet werden, um Arbeitsanforderungen für verschiedene KI-Modelle zu speichern, und/oder es können mehrere Warteschlangen verwendet werden, wobei eine Warteschlange der Performance eines bestimmten KI-Modelltyps zugeordnet ist. Beispielsweise kann eine Warteschlange einer bestimmten Art von Zieloperation zugeordnet werden.
  • Arbeitsanforderungen können in einer Warteschlange in der Reihenfolge oder außerhalb der Reihenfolge der Ausführung durch eine Vorrichtung gespeichert werden. Eine Anforderung kann einen zugeordneten Zeitstempel, wann sie in die Warteschlange eingestellt wurde, und (einen) zugeordnete(n) SLA-Parameter und die Ressourcenanforderungs-Metadaten aufweisen. Der Zeitplaner 1412 kann die Ausführung von Anforderungen planen, um zu versuchen, den/die zugeordneten SLA-Parameter zu erreichen.
  • Ein Beschleuniger unter den Beschleunigern 1450-0 bis 1450-2 kann eine Eingabe einer aktuellen Menge verfügbarer Ressourcen an den Zeitplaner 1412 und den Typ der beschleunigten Funktion bereitstellen, die er ausführen und Inhalt aus einer oder mehreren Warteschlangen unter den Warteschlangen 0 bis X abrufen oder ziehen kann. Beispielsweise kann für die Beschleuniger 1450-0 bis 1450-2 die jeweilige Pull- und QoS-Schaltungsanordnung 1452-0 bis 1452-2 verwendet werden, um eine Eingabe über die aktuelle Menge an verfügbaren Ressourcen an den Zeitplaner 1412 und den Typ der beschleunigten Funktion bereitzustellen, die er ausführen und Inhalt aus einer oder mehreren Warteschlangen aus den Warteschlangen 0 bis X abrufen oder ziehen kann. Ein Beschleuniger unter den Beschleunigern 1450-0 bis 1450-2 kann die von dem Beschleuniger 1410 erzeugten Metadaten abrufen oder ziehen, um eine Menge an Ressourcen zu bestimmen, die zur Erfüllung der anwendbaren QoS- und SLAs auszuführen sind. Bei einigen Beispielen kann die Pull- und QoS-Schaltungsanordnung eines Beschleunigers Beschleunigerressourcen, Speicherressourcen und/oder Netzwerkbandbreite zuweisen, um eine Arbeitslast auszuführen.
  • Bei einigen Beispielen kann der Zeitplaner 1412 Anforderungen zum Abrufen von Metadaten und Arbeitsanforderungen von einem oder mehreren Beschleunigern 1450-0 bis 1450-2 verarbeiten und entscheiden, welche Vorrichtung ein Modell basierend auf QoS und/oder SLA auszuführen hat, und eine Vorrichtung zur Ausführung des Modells basierend auf der Komplexität (z. B. der erforderlichen Rechenressourcen zum Abschluss der Arbeit in der erforderlichen Zeit, der Anzahl der nicht abgeschlossenen Aufträge, der Verarbeitungsgeschwindigkeit (z. B. Flops/Sekunde) und/oder der Zeit bis zum Abschluss einer bestimmten Schicht gemäß QoS oder SLA auswählen. Bei einigen Beispielen können verschiedene Kombinationen von Ressourcenanforderungen für einen Beschleuniger spezifiziert werden, um verschiedene Ebenen eines SLA zu erreichen, und der Lastausgleicher kann entscheiden, die Durchführung einer Anforderung zu verzögern (z. B. um 100 ns), auf Kosten einer Nutzung von 10 % mehr an Beschleunigerressourcen, um einen anwendbaren SLA-Parameter zu erfüllen. In einigen Fällen kann der Zeitplaner 1412 Modelle in Abhängigkeit von den verfügbaren Hardwareressourcen oder fehlenden Hardwareressourcen registrieren oder de-registrieren.
  • 15 zeigt einen beispielhaften Betrieb. In einem Überwachungs- und Personenidentifizierungs-KI-Modell kann das vorverarbeitende NN die Komplexität der Überwachung und Personenidentifizierung bestimmen, die in Schicht 0 durchzuführen ist. Die Vorverarbeitung von NN kann zum Beispiel eine Anzahl der Personen in dem Bild bestimmen. Bei diesem Beispiel wird Ressource A für die Vorverarbeitung von NN verwendet und kann 2 GB/s DDR-Speicher und 2 Bildverarbeitungseinheit- (VPU-) Kerne nutzen. Die Vorverarbeitung kann verschiedene Kombinationen von Ressourcenanforderungen für dieselben Beschleuniger erzeugen, die unterschiedliche SLA-Ebenen bieten. Beispielsweise können die Ressourcen B-D identifiziert werden, wobei die Ressource B 2 Gbps DDR-Speicher und 2 VPU-Kerne umfasst, die Ressource C 0,5 Gbps DDR-Speicher und 1 VPU-Kern umfasst und die Ressource D 3,5 Gbps DDR-Speicher und 5 VPU-Kerne umfasst.
  • Schicht 0 des NN kann die spezifischen Personen identifizieren, die mit einer oder mehreren der identifizierten Personen übereinstimmen, und Schicht 1 und Schicht X können andere Operationen durchführen. Bei diesem Beispiel weist Schicht 0 von NN abhängig von den Metadaten, die in der vorverarbeitenden NN-Schicht erzeugt wurden, einen unterschiedlichen Grad der Rechenanforderungen auf. Daher können vor Ausführung der ersten und/oder zweiten Phase Ressourcen zugewiesen werden, um das geforderte SLA (z. B. 40 fps) zu erfüllen. In einigen Fällen kann sich das SLA für den Strom (Stream) im Zeitablauf ändern, abhängig von externen Faktoren wie Kamerastandort, Personenstrom, der analysiert wird usw., und die zur Erreichung des SLA zugewiesenen Ressourcen können entsprechend angepasst werden.
  • 16 stellt einen beispielhaften Prozess dar. Der Prozess kann von einer Vorrichtung durchgeführt werden, die die Verarbeitung bestimmt, um eine oder mehrere Konfigurationen von Vorrichtungsressourcen zu bestimmen, aus denen eine nachfolgende Verarbeitungsschicht auszuwählen ist. Bei 1602 kann in einer Vorverarbeitungsstufe eine Anforderung zur Durchführung einer Verarbeitung von Daten empfangen werden. Bei einigen Beispielen umfasst die Anforderung eine Binärdatei, die in einer Vorverarbeitungsstufe ausgeführt wird, und die Anforderung kann ein SLA umfassen. Bei 1604 kann die Vorverarbeitungsstufe die Vorrichtungsressourcen schätzen oder bestimmen, um eine nächste Stufe innerhalb einer Anforderung eines anwendbaren SLAs abzuschließen. So können beispielsweise eine oder mehrere Konfigurationen von Vorrichtungsressourcen von der Vorverarbeitungsstufe bereitgestellt werden. Die eine oder die mehreren Konfigurationen von Vorrichtungsressourcen können in Metadaten angezeigt werden.
  • Bei 1606 kann eine der Anforderung zugeordnete Arbeitslast an eine Warteschlange mit vorverarbeitenden Metadaten bereitgestellt werden. Die der Arbeitslast zugeordneten Rechenressourcen können in den Metadaten angezeigt werden. Bei einigen Beispielen kann eine Hardwarevorrichtung Ressourcen zuweisen, um die Arbeitslast auszuführen. Bei einigen Beispielen kann einer Warteschlange ein bestimmter KI-Modelltyp zugeordnet werden. Bei 1608 kann eine Vorrichtung die Warteschlange lesen, um eine auszuführende Arbeitslast zu identifizieren. Die Vorrichtung kann ausgebildet sein, in den Metadaten angegebene Hardwareressourcen zuzuweisen und die Arbeitslast auszuführen. Die Ausführung der Arbeitslast kann Daten erzeugen, die von einer nachfolgenden Schicht verarbeitet oder dem Anforderer zur Verfügung gestellt werden können.
  • 17 zeigt ein beispielhaftes Rechensystem. Das System 1700 kann eine oder mehrere Konfigurationen von Hardware bestimmen, um eine Stufe oder eine Arbeitslast in Übereinstimmung mit einem oder mehreren hierin beschriebenen Ausführungsbeispielen durchzuführen. Ein System 1700 umfasst einen Prozessor 1710, der eine Verarbeitung, ein Operationsmanagement und eine Ausführung von Anweisungen für das System 1700 bereitstellt. Der Prozessor 1710 kann irgendeine Art von Mikroprozessor, zentraler Verarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Bildverarbeitungseinheit (VPU), Verarbeitungskern oder andere Verarbeitungshardware umfassen, um die Verarbeitung für das System 1700 oder eine Kombination von Prozessoren bereitzustellen. Der Prozessor 1710 steuert den Gesamtbetrieb des Systems 1700 und kann ein oder mehrere programmierbare Allzweck- oder Spezialzweck-Mikroprozessoren, digitale Signalprozessoren (DSPs; digital signal processors), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASICs; application specific integrated circuits), programmierbare Logikvorrichtungen (PLDs; programmable logic devices) oder Ähnliches oder eine Kombination solcher Vorrichtungen sein oder umfassen.
  • Bei einem Beispiel umfasst das System 1700 eine Schnittstelle 1712, die mit einem Prozessor 1710 gekoppelt ist, was eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten darstellen kann, die Verbindungen mit höherer Bandbreite benötigen, wie beispielsweise ein Speicherteilsystem 1720 oder Grafikschnittstellen-Komponenten 1740 oder Beschleuniger 1742. Die Schnittstelle 1712 stellt eine Schnittstellenschaltung dar, die eine eigenständige Komponente oder auf einem Prozessor-Die integriert sein kann. Falls vorhanden, bildet die Grafikschnittstelle 1740 eine Schnittstelle mit Grafikkomponenten, um an einen Benutzer des Systems 1700 eine visuelle Anzeige bereitzustellen. Bei einem Beispiel kann die Grafikschnittstelle 1740 eine hochauflösende (HD; high definition) Anzeige treiben, die an einen Benutzer eine Ausgabe bereitstellt. Hochauflösend kann sich auf eine Anzeige beziehen, die eine Pixeldichte von ungefähr 100 PPI (pixels per inch; Pixel pro Zoll) oder größer aufweist, und kann Formate wie beispielsweise Full HD (z. B. 1080p), Retina-Displays, 4K (ultrahochauflösend oder UHD (ultra-high definition)) oder andere umfassen. Bei einem Beispiel kann die Anzeige eine Touchscreen-Anzeige umfassen. Bei einem Beispiel erzeugt die Grafikschnittstelle 1740 eine Anzeige basierend auf Daten, die in dem Speicher 1730 gespeichert sind oder basierend auf Operationen, die der Prozessor 1710 ausführt oder beidem. Bei einem Beispiel erzeugt die Grafikschnittstelle 1740 eine Anzeige basierend auf Daten, die in dem Speicher 1730 gespeichert sind oder basierend auf Operationen, die der Prozessor 1710 ausführt oder beidem.
  • Die Beschleuniger 1742 können eine Feste-Funktion- oder programmierbare Offload-Engine sein, auf die ein Prozessor 1710 zugreifen kann oder die von diesem verwendet werden kann. Beispielsweise kann ein Beschleuniger unter den Beschleunigern 1742 Kompressionsfähigkeit (DC), Kryptographiedienste wie beispielsweise Public-Key-Verschlüsselung (PKE; public key encryption), Chiffrieren, Hash-/Authentifizierung-Fähigkeiten, Entschlüsselung oder andere Fähigkeiten oder Dienste bereitstellen. Zusätzlich oder alternativ stellt ein Beschleuniger unter den Beschleunigern 1742 Feldauswahlsteuerungsfähigkeiten bereit, wie hierin beschrieben. In einigen Fällen können die Beschleuniger 1742 in einen CPU-Sockel (z. B. ein Verbinder zu einer Hauptplatine oder Schaltungsplatine, die eine CPU umfasst und eine elektrische Schnittstelle mit der CPU bereitstellt) integriert sein. Beispielsweise können die Beschleuniger 1742 einen Einzel- oder Multi-Kern-Prozessor, eine Grafikverarbeitungseinheit, eine logische Ausführungseinheit, Einzel- oder Multi-Level-Cache, funktionale Einheiten, verwendbar zur unabhängigen Ausführung von Programmen oder Threads, anwendungsspezifische integrierte Schaltungen (ASICs), Neuronales-Netzwerk-Prozessoren (NNPs; neural network processors), programmierbare Steuerlogik und programmierbare Verarbeitungselemente wie beispielsweise feldprogrammierbare Gate-Arrays (FPGAs) oder programmierbare Logikvorrichtungen (PLDs) umfassen. Die Beschleuniger 1742 können mehrere neuronale Netzwerke, CPUs, Prozessorkerne, Allzweck-Grafikverarbeitungseinheiten bereitstellen oder Grafikverarbeitungseinheiten können zur Verwendung durch Modelle der künstlichen Intelligenz (KI) oder des maschinellen Lernens (ML; machine learning) zur Verfügung gestellt werden. Beispielsweise kann das KI-Modell eines oder mehrere verwenden oder umfassen von: einem Bestärkendes-Lernen-Schema, einem Q-Lernen-Schema, einem Deep-Q-Lernen oder einem Asynchronous Advantage Actor-Critic (A3C), einem kombinatorischen neuronalen Netzwerk, einem rekurrenten kombinatorischen neuronalen Netzwerk oder einem anderen KI- oder ML-Modell. Mehrere neuronale Netzwerke, Prozessorkerne oder Grafikverarbeitungseinheiten können für die Verwendung durch AI- oder ML-Modelle zur Verfügung gestellt werden.
  • Ein Speicherteilsystem 1720 stellt den Hauptspeicher des Systems 1700 dar und stellt Speicherung für einen Code, der durch den Prozessor 1710 ausgeführt werden soll, oder für Datenwerte, die bei der Ausführung einer Routine verwendet werden sollen, bereit. Das Speicherteilsystem 1720 kann eine oder mehrere Speichervorrichtungen 1730 umfassen, wie beispielsweise Nur-Lese-Speicher (ROM; read-only memory), Flash-Speicher, eine oder mehrere Varianten von Direktzugriffsspeicher (RAM; random access memory), wie beispielsweise DRAM, oder andere Speichervorrichtungen, oder eine Kombination solcher Vorrichtungen. Ein Speicher 1730 speichert und hostet unter anderem ein Betriebssystem (OS; operating system) 1732, um eine Softwareplattform für eine Ausführung von Anweisungen in dem System 1700 bereitzustellen. Zusätzlich können Anwendungen 1734 auf der Software-Plattform des OS 1732 von dem Speicher 1730 ausgeführt werden. Die Anwendungen 1734 repräsentieren Programme, die ihre eigene operative Logik zur Ausführung einer oder mehrerer Funktionen aufweisen. Prozesse 1736 repräsentieren Mittel oder Routinen, die an das OS 1732 oder eine oder mehrere Anwendungen 1734 Hilfsfunktionen bereitstellen, oder eine Kombination. Das OS 1732, die Anwendungen 1734 und die Prozesse 1736 stellen Software-Logik bereit, um Funktionen für das System 1700 bereitzustellen. Bei einem Beispiel umfasst das Speicherteilsystem 1720 eine Speichersteuerung 1722, die eine Speichersteuerung zum Erzeugen und Ausgeben von Befehlen an den Speicher 1730 ist. Es versteht sich, dass die Speichersteuerung 1722 ein physischer Teil des Prozessors 1710 oder ein physischer Teil der Schnittstelle 1712 sein könnte. Zum Beispiel kann die Speichersteuerung 1722 eine integrierte Speichersteuerung sein, die auf eine Schaltung mit dem Prozessor 1710 integriert ist.
  • Bei einigen Beispielen kann das OS 1732 Linux®, Windows® Server oder Personal Computer, FreeBSD®, Android®, MacOS®, iOS®, VMware vSphere, openSUSE, RHEL, CentOS, Debian, Ubuntu oder irgendein anderes Betriebssystem sein. Das OS und der Treiber können auf einer CPU ausgeführt werden, die unter anderem von Intel®, ARM®, AMD®, Qualcomm®, IBM®, Texas Instruments® verkauft oder entwickelt wird.
  • Auch wenn nicht eigens dargestellt, versteht es sich, dass das System 1700 einen oder mehrere Busse oder Bus-Systeme zwischen Vorrichtungen umfassen kann, wie beispielsweise einen Speicher-Bus, einen Grafik-Bus, Schnittstellen-Busse oder andere. Busse oder andere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln, oder die Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder eine andere Schaltungsanordnung oder eine Kombination umfassen. Busse können zum Beispiel einen oder mehrere von einem Systembus, einem Peripheral Component Interconnect- (PCI-) Bus, einem Hyper Transport- oder Industry Standard Architecture- (ISA-) Bus, einem Small Computer System Interface- (SCSI-) Bus, einem universellen seriellen Bus (USB; universal serial bus) oder einem Institute of Electrical and Electronics Engineers- (IEEE-) Standard 1394-Bus (Firewire) umfassen.
  • Bei einem Beispiel umfasst das System 1700 eine Schnittstelle 1714, die mit der Schnittstelle 1712 gekoppelt sein kann. Bei einem Beispiel repräsentiert die Schnittstelle 1714 eine Schnittstellenschaltung, die eigenständige Komponenten und eine integrierte Schaltungsanordnung umfassen kann. Bei einem Beispiel koppeln mehrere Benutzerschnittstellenkomponenten oder Peripheriekomponenten oder beide mit der Schnittstelle 1714. Eine Netzwerkschnittstelle 1750 stellt an das System 1700 die Fähigkeit bereit, über ein oder mehrere Netzwerke mit entfernten Vorrichtungen (z. B. Servern oder anderen Rechenvorrichtungen) zu kommunizieren. Die Netzwerkschnittstelle 1750 kann einen Ethernet-Adapter, drahtlose Verbindungskomponenten, zelluläre Netzwerk-Verbindungskomponenten, USB (Universal Serial Bus) oder andere drahtgebundene oder drahtlos-standard-basierte oder proprietäre Schnittstellen umfassen. Die Netzwerkschnittstelle 1750 kann Daten an eine Vorrichtung senden, die in dem gleichen Rechenzentrum oder Rack ist, oder an eine entfernte Vorrichtung, was ein Senden von in einem Speicher gespeicherten Daten umfassen kann. Die Netzwerkschnittstelle 1750 kann Daten von einer entfernten Vorrichtung empfangen, was eine Speicherung von empfangenen Daten in Speicher umfassen kann.
  • Bei einem Beispiel umfasst das System 1700 eine oder mehrere Eingangs-/Ausgangs- (I/O-; Input/Output) Schnittstelle(n) 1760. Die I/O-Schnittstelle 1760 kann eine oder mehrere Schnittstellenkomponenten umfassen, über die ein Benutzer mit dem System 1700 interagiert (z. B. Audio-, alphanumerische, tastbare/berührbare oder andere Schnittstellbildung). Eine Peripherieschnittstelle 1770 kann irgendeine Hardwareschnittstelle umfassen, die oben nicht ausdrücklich erwähnt wurde. Peripherievorrichtungen beziehen sich im Allgemeinen auf Vorrichtungen, die abhängig mit dem System 1700 verbinden. Eine abhängige Verbindung ist eine, bei der das System 1700 die Software-Plattform oder Hardware-Plattform oder beide bereitstellt, auf der die Operation ausgeführt wird und mit der ein Benutzer interagiert.
  • Bei einem Beispiel umfasst das System 1700 ein Speicherungsteilsystem 1780, um Daten auf eine nichtflüchtige Weise zu speichern. Bei einem Beispiel können bei bestimmten Systemimplementierungen zumindest bestimmte Komponenten einer Speicherung 1780 mit Komponenten des Speicherteilsystems 1720 überlappen. Das Speicherungsteilsystem 1780 umfasst eine oder mehrere Speicherungsvorrichtung(en) 1784, die irgendein herkömmliches Medium zum Speichern großer Datenmengen auf nichtflüchtige Weise sein oder umfassen können, wie beispielsweise eine oder mehrere magnetische, Festkörper- (solid state) oder optischbasierte Platten oder eine Kombination. Eine Speicherung 1784 umfasst einen Code oder Anweisungen und Daten 1786 in einem dauerhaften Zustand (z. B. der Wert bleibt trotz Unterbrechung der Leistung zu dem System 1700 erhalten). Die Speicherung 1784 kann allgemein als ein „Speicher“ betrachtet werden, obwohl der Speicher 1730 üblicherweise der Ausführungs- oder Betriebsspeicher ist, um dem Prozessor 1710 Anweisungen bereitzustellen. Während die Speicherung 1784 nichtflüchtig ist, kann der Speicher 1730 einen flüchtigen Speicher umfassen (z. B. der Wert oder Zustand der Daten ist unbestimmt, wenn die Leistung zu dem System 1700 unterbrochen ist). Bei einem Beispiel umfasst das Speicherungsteilsystem 1780 eine Steuerung 1782, um eine Schnittstelle mit der Speicherung 1784 zu bilden. Bei einem Beispiel ist die Steuerung 1782 ein physischer Teil der Schnittstelle 1714 oder des Prozessors 1710 oder kann Schaltungen oder Logik sowohl in dem Prozessor 1710 als auch in der Schnittstelle 1714 umfassen.
  • Ein flüchtiger Speicher ist ein Speicher, dessen Zustand (und damit die darin gespeicherten Daten) unbestimmt ist, wenn die Leistung zu der Vorrichtung unterbrochen wird. Ein dynamischer flüchtiger Speicher verwendet ein Aktualisieren der Daten, die in der Vorrichtung gespeichert sind, um den Zustand aufrechtzuerhalten. Ein Beispiel eines dynamischen flüchtigen Speichers umfasst DRAM (Dynamic Random Access Memory; dynamischen Direktzugriffsspeicher) oder eine Variante wie beispielsweise synchronen DRAM (SDRAM; Synchronous DRAM). Ein weiteres Beispiel eines flüchtigen Speichers umfasst einen Cache. Ein Speicherteilsystem, wie es hierin beschrieben ist, kann mit einer Reihe von Speichertechnologien kompatibel sein, wie beispielsweise DDR3 (Double Data Rate Version 3, ursprüngliche Herausgabe durch JEDEC (Joint Electronic Device Engineering Council) am 16. Juni 2007). DDR4 (DDR-Version 4, erste Spezifikation veröffentlicht im September 2012 durch JEDEC), DDR4E (DDR-Version 4), LPDDR3 (Low Power DDR-Version3 (Niedrig-Leistungs-DDR-Version3), JESD209-3B, August 2013 durch JEDEC), LPDDR4) LPDDR-Version 4, JESD209-4, ursprünglich veröffentlicht durch JEDEC im August 2014), WIO2 (Wide Input/Output Version 2 (breiter Eingang/Ausgang Version 2), JESD229-2, ursprünglich veröffentlicht durch JEDEC im August 2014, HBM (High Bandwidth Memory (Hohe-Bandbreite-Speicher), JESD325, ursprünglich veröffentlicht durch JEDEC im Oktober 2013, LPDDR5 (derzeit in Diskussion durch JEDEC), HBM2 (HBM-Version 2), derzeit in Diskussion durch JEDEC, oder anderen oder Kombinationen von Speichertechnologien, und Technologien, die auf Herleitungen oder Erweiterungen solcher Spezifikationen basieren.
  • Eine Nichtflüchtiger-Speicher- (NVM; non-volatile memory) Vorrichtung ist ein Speicher, dessen Zustand bestimmt ist, auch falls Leistung zu der Vorrichtung unterbrochen wird. Die NVM-Vorrichtung kann eine blockadressierbare Speichervorrichtung, wie beispielsweise NAND-Technologien, oder genauer, einen Multi-Schwellenpegel-NAND-Flash-Speicher (zum Beispiel Single-Level Cell („SLC“), Multi-Level Cell („MLC“), Quad-Level Cell („QLC“), Tri-Level Cell („TLC“) oder ein anderes NAND) umfassen. Eine NVM-Vorrichtung kann auch eine byteadressierbare dreidimensionale Write-in-Place Cross Point- (Vor-Ort-Schreiben-Kreuzpunkt-) Speichervorrichtung oder eine andere byteadressierbare Write-in-Place-NVM-Vorrichtung (auch als dauerhafter Speicher bezeichnet) umfassen, wie beispielsweise einen ein- oder mehrstufigen Phasenwechselspeicher (PCM; Phase Change Memory) oder Phasenwechselspeicher mit einem Schalter (PCMS), Intel® Optane™-Speicher, NVM-Vorrichtungen, die Chalkogenidphasenwechselmaterial (z. B. Chalkogenidglas) verwenden, einen resistiven Speicher umfassend Metalloxid-Basis, Sauerstoff-Leerstellenbasis und Conductive Bridge Random Access Memory (CB-RAM), Nanodrahtspeicher, ferroelektrischer Direktzugriffsspeicher (FeRAM, FRAM), magnetoresistiver Direktzugriffsspeicher (MRAM) mit Memristor-Technologie, Spin Transfer Torque- (STT-) MRAM, eine auf Spintronik-Magnet-Übergang-Speicher basierende Vorrichtung, eine auf magnetischem Tunnelübergang (MTJ; magnetic tunneling junction) basierende Vorrichtung, eine DW (Domain Wall; Domänenwand) und SOT (Spin Orbit Transfer) basierte Vorrichtung, eine thyristorbasierte Speichervorrichtung oder eine Kombination aus einem der Obigen oder einen anderen Speicher.
  • Eine Leistungsquelle (nicht abgebildet) stellt an die Komponenten des Systems 1700 Leistung bereit. Genauer gesagt bildet eine Leistungsquelle üblicherweise eine Schnittstelle mit einer oder mehreren Leistungsversorgungen in dem System 1700, um an die Komponenten des Systems 1700 Leistung bereitzustellen. Bei einem Beispiel umfasst die Leistungsversorgung einen AC-zu-DC-(Wechselstrom-zu-Gleichstrom-; alternating current to direct current) Adapter zum Einstecken in eine Steckdose. Eine solche Wechselstrom- (AC-) Leistung kann eine Erneuerbare-Energien (z. B. Solarleistung) -Leistungsquelle sein. Bei einem Beispiel umfasst eine Leistungsquelle eine Gleichstrom- (DC-) Leistungsquelle, wie beispielsweise einen externen Wechselstrom-zu-Gleichstrom- (AC-zu-DC-) Wandler. Bei einem Beispiel umfasst eine Leistungsquelle oder Leistungsversorgung drahtlose Ladehardware zum Aufladen über die Nähe zu einem Ladefeld. Bei einem Beispiel kann eine Leistungsquelle eine interne Batterie, eine Wechselstromversorgung, eine bewegungsbasierte Leistungsversorgung, eine Solarleistungsversorgung oder eine Brennstoffzellenquelle umfassen.
  • Bei einem Beispiel kann das System 1700 unter Verwendung von miteinander verbundenen Rechenschlitten aus Prozessoren, Speichern, Speicherungen, Netzwerkschnittstellen und anderen Komponenten implementiert sein. Hochgeschwindigkeitsverbindungen können verwendet werden, wie beispielsweise: Ethernet (IEEE 802.3), remote direct memory access (RDMA), InfiniBand, Internet Wide Area RDMA Protocol (iWARP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), quick UDP Internet Connections (QUIC), RDMA over Converged Ethernet (RoCE), Peripheral Component Interconnect express (PCIe), Intel QuickPath Interconnect (QPI), Intel Ultra Path Interconnect (UPI), Intel On-Chip System Fabric (IOSF), Omni-Path, Compute Express Link (CXL), HyperTransport, high-speed fabric, NVLink, Advanced Microcontroller Bus Architecture (AMBA) interconnect, OpenCAPI, Gen-Z, Infinity Fabric (IF), Cache Coherent Interconnect for Accelerators (CCIX), 3GPP Long Term Evolution (LTE) (4G), 3GPP 5G, und Variationen derselben. Daten können unter Verwendung eines Protokolls wie beispielsweise NVMe over Fabrics (NVMe-oF) oder NVMe auf virtualisierte Speicherungsknoten kopiert oder gespeichert werden oder es kann darauf zugegriffen werden.
  • Beispiele hierin können Teil von Rechen- und Netzwerk-Ausrüstung, wie beispielsweise Schaltern, Routern, Racks und Blade-Servern, wie sie in einem Rechenzentrum und/oder einer Serverfarmumgebung verwendet werden, implementiert sein. Die Server, die in Rechenzentren und Serverfarmen verwendet werden, umfassen angeordnete Server-Konfigurationen wie beispielsweise Rack-basierte Server oder Blade-Server. Diese Server sind in Kommunikation via verschiedene Netzwerkzugänge miteinander verbunden, wie beispielsweise ein Partitionieren von Serversätzen in lokale Netzwerke (LANs; Local Area Networks) mit geeigneten Schalt- und Routing-Einrichtungen zwischen den LANs, um ein privates Intranet zu bilden. Zum Beispiel können Cloud-Hosting-Einrichtungen üblicherweise große Rechenzentren mit einer Vielzahl von Servern nutzen. Ein Blade umfasst eine separate Rechenplattform, die ausgebildet ist, serverartige Funktionen auszuführen, das heißt, einen „Server auf einer Karte“. Dementsprechend umfasst ein Blade Komponenten, die herkömmlichen Servern gemeinsam sind, umfassend eine gedruckte Hauptschaltungsplatine (Hauptplatine; main board), die eine interne Verkabelung (d. h. Busse) zum Koppeln geeigneter integrierter Schaltungen (ICs) und anderer Komponenten, die auf der Platine befestigt sind, bereitstellt.
  • Bei einigen Beispielen können die Netzwerkschnittstelle und andere hierin beschriebene Beispiele in Verbindung mit einer Basisstation (z. B. 3G, 4G, 5G usw.), Makro-Basisstation (z. B. 5G-Netzwerke), Picostation (z. B. ein IEEE 802.11-kompatibler Zugangspunkt), Nanostation (z. B. für Point-to-MultiPoint- (PtMP-) Anwendungen), lokalen Rechenzentren, externen Rechenzentren, Edge-Netzwerkelementen, Edge-Servern, Edge-Schaltern, Fog-Netzwerkelementen und/oder hybriden Rechenzentren (z. B. Rechenzentren, die Virtualisierung, Cloud und softwaredefinierte Netzwerke verwenden, um Anwendungs-Workloads über physische Rechenzentren und verteilte Multi-Cloud-Umgebungen hinweg bereitzustellen) verwendet werden.
  • Verschiedene Beispiele können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination von beiden implementiert sein. Bei einigen Beispielen können Hardwareelemente Vorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten usw.), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Speichereinheiten, Logik-Gates, Register, ein Halbleiterbauelement, Chips, Mikrochips, Chipsätze usw. umfassen. Bei einigen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, APIs, Anweisungssätze, einen Rechencode, einen Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination derselben umfassen. Die Bestimmung, ob ein Beispiel unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert wird, kann gemäß irgendeiner Anzahl von Faktoren, wie beispielsweise der gewünschten Rechenrate, den Leistungspegeln, den Wärmetoleranzen, dem Verarbeitungszyklus-Budget, den Eingangsdatenraten, den Ausgangsdatenraten, den Speicherressourcen, den Datenbusgeschwindigkeiten und anderen Entwurf- oder Performanceeinschränkungen, wie für eine gegebene Implementierung gewünscht, variieren. Ein Prozessor kann eines oder mehrere sein aus einer Kombination aus einer Hardware-Zustandsmaschine, digitalen Steuerlogik, zentralen Verarbeitungseinheit oder irgendwelchen Hardware-, Firmware- und/oder Software-Elementen.
  • Einige Beispiele können unter Verwendung von oder als ein Herstellungsartikel oder zumindest ein computerlesbares Medium implementiert sein. Ein computerlesbares Medium kann ein nichtflüchtiges Speicherungsmedium zur Speicherung von Logik umfassen. Bei einigen Beispielen kann das nichtflüchtige Speicherungsmedium eine oder mehrere Arten von computerlesbaren Speicherungsmedien umfassen, die fähig sind, elektronische Daten zu speichern, umfassend flüchtigen oder nichtflüchtigen Speicher, entfernbaren oder nicht entfernbaren Speicher, löschbaren oder nicht löschbaren Speicher, beschreibbaren oder wiederbeschreibbaren Speicher und so weiter. Bei einigen Beispielen kann die Logik verschiedene Software-Elemente, wie beispielsweise Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Teilroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, API, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination davon umfassen.
  • Gemäß einigen Beispielen kann ein computerlesbares Medium ein nichtflüchtiges Speicherungsmedium zum Speichern oder Aufrechterhalten von Anweisungen umfassen, die, wenn sie durch eine Maschine, eine Rechenvorrichtung oder ein System ausgeführt werden, verursachen, dass die Maschine, die Rechenvorrichtung oder das System Verfahren und/oder Operationen gemäß den beschriebenen Beispielen ausführt. Die Anweisungen können irgendeine geeignete Art von Code umfassen, wie beispielsweise einen Quellcode, einen kompilierten Code, einen interpretierten Code, einen ausführbaren Code, einen statischen Code, einen dynamischen Code und Ähnliches. Die Anweisungen können gemäß einer vordefinierten Computersprache, - weise oder -syntax implementiert sein, um eine Maschine, ein(e) Rechenvorrichtung oder System anzuweisen, eine bestimmte Funktion auszuführen. Die Anweisungen können unter Verwendung irgendeiner geeigneten Hochsprachen-, Niedersprachen-, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert sein.
  • Ein oder mehrere Aspekte von zumindest einem Beispiel können durch repräsentative Anweisungen implementiert sein, die auf zumindest einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logiken innerhalb des Prozessors repräsentiert, die, wenn sie von einer Maschine, einer Rechenvorrichtung oder einem System gelesen werden, die Maschine, die Rechenvorrichtung oder das System veranlassen, Logik zur Ausführung der hierin beschriebenen Techniken herzustellen. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem greifbaren, maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Herstellungseinrichtungen geliefert werden, um sie in die Fertigungsmaschinen zu laden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Das Auftreten der Phrase „ein einzelnes Beispiel“ oder „ein Beispiel“ bezieht sich nicht notwendigerweise auf dasselbe Beispiel oder Ausführungsbeispiel. Irgendein hierin beschriebener Aspekt kann mit irgendeinem anderen Aspekt oder ähnlichen hierin beschriebenen Aspekt kombiniert werden, unabhängig davon, ob die Aspekte in Bezug auf dieselbe Figur oder dasselbe Element beschrieben sind. Ein Teilen, Auslassen oder Umfassen von Blockfunktionen, die in den beiliegenden Figuren abgebildet sind, lässt nicht herleiten, dass die Hardwarekomponenten, Schaltungen, Software und/oder Elemente zur Implementierung dieser Funktionen notwendigerweise unterteilt, weggelassen oder bei Ausführungsbeispielen umfasst sein müssten.
  • Einige Beispiele können unter Verwendung der Ausdrücke „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe sind nicht notwendigerweise als Synonyme füreinander vorgesehen. Beispielsweise können Beschreibungen, die die Begriffe „verbunden“ und/oder „gekoppelt“ verwenden, möglicherweise anzeigen, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander stehen. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, jedoch weiter miteinander zusammenarbeiten oder interagieren.
  • Die Begriffe „erste,r,s“, „zweite,r,s“ und Ähnliches bezeichnen hierin nicht irgendeine Reihenfolge, Menge oder Bedeutung, sondern werden vielmehr dazu verwendet, ein Element von einem anderen zu unterscheiden. Die Begriffe „ein,e,s“ (a, an) bezeichnen hierin nicht eine Mengenbeschränkung, sondern vielmehr das Vorhandensein von zumindest einem von den Gegenständen, auf die Bezug genommen wird. Der Begriff „aufgeschaltet“ (asserted), der hierin in Bezug auf ein Signal verwendet wird, bezeichnet einen Zustand des Signals, in dem das Signal aktiv ist und der durch Anwenden irgendeines Logikpegels auf das Signal, entweder Logik 0 oder Logik 1, erreicht werden kann. Die Begriffe „folgen“ oder „nach“ können sich auf unmittelbar folgen oder folgen nach einem anderen Ereignis oder Ereignissen beziehen. Andere Abfolgen von Operationen können auch gemäß Alternativen ausgeführt werden. Ferner können zusätzliche Operationen, abhängig von den bestimmten Anwendungen, hinzugefügt oder entfernt werden. Es kann irgendeine Kombination von Änderungen verwendet werden und ein Fachmann auf dem Gebiet, der den Nutzen dieser Offenbarung hat, würde die vielen Variationen, Modifikationen und Alternativen davon verstehen.
  • Eine disjunktive Sprache, wie beispielsweise die Phrase „zumindest eines von X, Y oder Z“, sofern nicht anderweitig spezifisch angegeben, wird ansonsten innerhalb des Kontexts verstanden, wie er im Allgemeinen verwendet wird, um darzustellen, dass ein Gegenstand, ein Begriff usw. entweder X, Y oder Z oder eine Kombination davon (z. B. X, Y und/oder Z) sein kann. Somit ist solch disjunktive Sprache nicht im Allgemeinen dafür vorgesehen und soll nicht implizieren, dass bestimmte Ausführungsbeispiele das jeweilige Vorliegen von zumindest einem von X, zumindest einem von Y oder zumindest einem von Z erfordern. Zusätzlich soll konjunktive Sprache wie beispielsweise die Phrase „zumindest eines von X, Y und Z“, sofern nicht anderweitig spezifisch angegeben, auch als X, Y, Z oder eine Kombination davon, umfassend „X, Y und/oder Z“, verstanden werden.
  • Darstellende Beispiele der Vorrichtungen, Systeme und Verfahren, die hierin offenbart sind, sind nachfolgend bereitgestellt. Ein Ausführungsbeispiel der Vorrichtungen, Systeme und Verfahren kann ein oder mehrere, und eine Kombination, der nachfolgend beschriebenen Beispiele umfassen.
  • Eine erste Verarbeitung von Daten in einem mehrstufigen neuronalen Netzwerk (NN), wobei die Durchführung der ersten Verarbeitung von Daten umfasst Erzeugen von Metadaten, die eine Verarbeitungsmenge für eine zweite Verarbeitung der Daten in dem mehrstufigen NN anzeigen; Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der zweiten Verarbeitung der Daten; und Durchführen der zweiten Verarbeitung der Daten in dem mehrstufigen NN durch die ausgewählt eine oder mehrere Hardwareressourcen, wobei eine oder mehrere Hardwareressourcen, die von der zweiten Verarbeitung verwendet werden, sich von einer oder mehreren Hardwareressourcen unterscheiden, die von der ersten Verarbeitung verwendet werden.
  • Beispiel 1 umfasst ein Verfahren, umfassend: Empfangen einer Arbeitslastanforderung zum Durchführen einer Vorverarbeitungsoperation und zumindest eines Service Level Agreement-(SLA-) Parameters und Durchführen der Vorverarbeitungsoperation, die der Arbeitslastanforderung und dem zumindest einen SLA-Parameter zugeordnet ist, um mehrere Konfigurationen von Hardwareressourcen zu bestimmen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen.
  • Beispiel 2 umfasst ein oder mehrere Beispiele, wobei die Vorverarbeitungsoperation eine ausführbare Binärdatei umfasst, auf die die Arbeitslastanforderung verweist.
  • Beispiel 3 umfasst ein oder mehrere Beispiele, und umfasst: Speichern der mehreren Konfigurationen von Hardwareressourcen in einer Warteschlange, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in der nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen.
  • Beispiel 4 umfasst ein oder mehrere Beispiele, und umfasst: Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast unter den mehreren Konfigurationen von Hardwareressourcen.
  • Beispiel 5 umfasst ein oder mehrere Beispiele, wobei die nachfolgende Stufe eine Datenverarbeitungsstufe in einem neuronalen Netzwerk (NN) umfasst.
  • Beispiel 6 umfasst ein oder mehrere Beispiele, wobei die der Arbeitslastanforderung zugeordnete Arbeitslast in der nachfolgenden Stufe eine Maschinelles-Lernen- (ML-) Inferenzoperation umfasst.
  • Beispiel 7 umfasst ein oder mehrere Beispiele, und umfasst ein nichtflüchtiges computerlesbares Medium, umfassend darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren veranlassen zum: Bestimmen mehrerer Konfigurationen von Hardwareressourcen, um eine einer Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe basierend auf einer Vorverarbeitungsoperation, zugeordnet der Arbeitslastanforderung und zumindest einem der Arbeitslastanforderung zugeordneten Service Level Agreement- (SLA-) Parameter, auszuführen Beispiel 8 umfasst ein oder mehrere Beispiele, wobei eine ausführbare Binärdatei der Arbeitslastanforderung zugeordnet ist und die Ausführung der ausführbaren Binärdatei die Vorverarbeitungsoperation durchführt.
  • Beispiel 9 umfasst ein oder mehrere Beispiele, und umfasst darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren veranlassen zum: Speichern der mehreren Konfigurationen von Hardwareressourcen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen.
  • Beispiel 10 umfasst ein oder mehrere Beispiele und umfasst darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessor veranlassen zum: Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast basierend auf einer oder mehreren von den mehreren Konfigurationen von Hardwareressourcen.
  • Beispiel 11 umfasst ein oder mehrere Beispiele, wobei die nachfolgende Stufe eine Datenverarbeitungsstufe in einem neuronalen Netzwerk (NN) umfasst.
  • Beispiel 12 umfasst ein oder mehrere Beispiele, wobei die der Arbeitslastanforderung zugeordnete Arbeitslast in der nachfolgenden Stufe eine Maschinelles-Lernen- (ML-) Inferenzoperation umfasst.
  • Beispiel 13 umfasst ein oder mehrere Beispiele, und umfasst ein System, das zumindest einen Prozessor und eine Schaltungsanordnung umfasst: ausgebildet zum: Bestimmen mehrerer Konfigurationen von Hardwareressourcen, um eine einer Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe basierend auf einer Vorverarbeitungsoperation, zugeordnet der Arbeitslastanforderung und zumindest einem der Arbeitslastanforderung zugeordneten Service Level Agreement- (SLA-) Parameter, auszuführen.
  • Beispiel 14 umfasst ein oder mehrere Beispiele, wobei eine ausführbare Binärdatei der Arbeitslastanforderung zugeordnet ist und die Ausführung der ausführbaren Binärdatei die Vorverarbeitungsoperation durchführt.
  • Beispiel 15 umfasst ein oder mehrere Beispiele, wobei ein Prozessor des zumindest einen Prozessors ausgebildet ist, die ausführbare Binärdatei auszuführen.
  • Beispiel 16 umfasst ein oder mehrere Beispiele, wobei die Schaltungsanordnung ausgebildet ist zum: Speichern der mehreren Konfigurationen von Hardwareressourcen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen.
  • Beispiel 17 umfasst ein oder mehrere Beispiele, wobei die Schaltungsanordnung ausgebildet ist zum: Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast basierend auf einer oder mehreren von den mehreren Konfigurationen von Hardwareressourcen.
  • Beispiel 18 umfasst ein oder mehrere Beispiele, wobei die der Arbeitslastanforderung zugeordnete Arbeitslast in der nachfolgenden Stufe eine Maschinelles-Lernen- (ML-) Inferenzoperation umfasst.
  • Beispiel 19 umfasst ein oder mehrere Beispiele, und umfasst ein nichtflüchtiges computerlesbares Medium, umfassend darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren veranlassen zum: Empfangen einer Arbeitslastanforderung zum Durchführen einer Vorverarbeitungsoperation und zumindest eines Service Level Agreement- (SLA-) Parameters und Verursachen der Durchführung der Vorverarbeitungsoperation, die der Arbeitslastanforderung und dem zumindest einen SLA-Parameter zugeordnet ist, um mehrere Konfigurationen von Hardwareressourcen zu bestimmen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen.
  • Beispiel 20 umfasst ein oder mehrere Beispiele, und umfasst darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessor veranlassen zum: Speichern der mehreren Konfigurationen von Hardwareressourcen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen und Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast basierend auf einer oder mehreren von den mehreren Konfigurationen von Hardwareressourcen.

Claims (20)

  1. Ein Verfahren, umfassend: Empfangen einer Arbeitslastanforderung zum Durchführen einer Vorverarbeitungsoperation und zumindest eines Performanceparameters; und Durchführen der Vorverarbeitungsoperation, die der Arbeitslastanforderung und dem zumindest einen Performanceparameter zugeordnet ist, um mehrere Konfigurationen von Hardwareressourcen zu bestimmen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen.
  2. Das Verfahren gemäß Anspruch 1, wobei das Durchführen der Vorverarbeitungsoperation ein Ausführen einer ausführbaren Binärdatei umfasst, auf die die Arbeitslastanforderung verweist.
  3. Das Verfahren gemäß einem der vorherigen Ansprüche, wobei die nachfolgende Stufe eine Datenverarbeitungsstufe in einem neuronalen Netzwerk (NN) umfasst.
  4. Das Verfahren gemäß einem der vorherigen Ansprüche, wobei die der Arbeitslastanforderung zugeordnete Arbeitslast in der nachfolgenden Stufe eine Maschinelles-Lernen- (ML-) Inferenzoperation umfasst.
  5. Das Verfahren gemäß einem der Ansprüche 1-4, umfassend: Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast unter den mehreren Konfigurationen von Hardwareressourcen.
  6. Das Verfahren gemäß einem der Ansprüche 1-5, umfassend: Speichern der mehreren Konfigurationen von Hardwareressourcen in einer Warteschlange, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in der nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen.
  7. Ein nichtflüchtiges computerlesbares Medium, umfassend darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren veranlassen zum: Bestimmen mehrerer Konfigurationen von Hardwareressourcen, um eine einer Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe basierend auf einer Vorverarbeitungsoperation, zugeordnet der Arbeitslastanforderung und zumindest einem der Arbeitslastanforderung zugeordneten Performanceparameter, auszuführen.
  8. Das computerlesbare Medium gemäß Anspruch 7, wobei eine ausführbare Binärdatei der Arbeitslastanforderung zugeordnet ist und die Ausführung der ausführbaren Binärdatei die Vorverarbeitungsoperation durchführt.
  9. Das computerlesbare Medium gemäß Anspruch 7 oder 8, umfassend darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren veranlassen zum: Speichern der mehreren Konfigurationen von Hardwareressourcen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen.
  10. Das computerlesbare Medium gemäß Anspruch 7, 8 oder 9, umfassend darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessor veranlassen zum: Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast basierend auf einer oder mehreren von den mehreren Konfigurationen von Hardwareressourcen.
  11. Das computerlesbare Medium gemäß einem der Ansprüche 7-10, wobei die nachfolgende Stufe eine Datenverarbeitungsstufe in einem neuronalen Netzwerk (NN) umfasst.
  12. Das computerlesbare Medium gemäß einem der Ansprüche 7-11, wobei die der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe eine Maschinelles-Lernen- (ML-) Inferenzoperation umfasst.
  13. Ein System umfassend: zumindest einen Prozessor und eine Schaltungsanordnung zum: Bestimmen mehrerer Konfigurationen von Hardwareressourcen, um eine einer Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe basierend auf einer Vorverarbeitungsoperation, zugeordnet der Arbeitslastanforderung und zumindest einem der Arbeitslastanforderung zugeordneten Performanceparameter, auszuführen.
  14. Das System gemäß Anspruch 13, wobei eine ausführbare Binärdatei der Arbeitslastanforderung zugeordnet ist und die Ausführung der ausführbaren Binärdatei die Vorverarbeitungsoperation durchführt.
  15. Das System gemäß Anspruch 14, wobei ein Prozessor des zumindest einen Prozessors ausgebildet ist, die ausführbare Binärdatei auszuführen.
  16. Das System gemäß Anspruch 13, 14 oder 15, wobei die Schaltungsanordnung ausgebildet ist zum: Speichern der mehreren Konfigurationen von Hardwareressourcen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen.
  17. Das System gemäß einem der Ansprüche 13-16, wobei die Schaltungsanordnung ausgebildet ist zum: Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast basierend auf einer oder mehreren von den mehreren Konfigurationen von Hardwareressourcen.
  18. Das System gemäß einem der Ansprüche 13-17, wobei die der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe eine Maschinelles-Lernen- (ML-) Inferenzoperation umfasst.
  19. Ein nichtflüchtiges computerlesbares Medium, umfassend darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren veranlassen zum: Empfangen einer Arbeitslastanforderung zum Durchführen einer Vorverarbeitungsoperation und zumindest eines Performanceparameters und Verursachen der Durchführung der Vorverarbeitungsoperation, die der Arbeitslastanforderung und dem zumindest einen Performanceparameter zugeordnet ist, um mehrere Konfigurationen von Hardwareressourcen zu bestimmen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen.
  20. Das computerlesbare Medium gemäß Anspruch 19, umfassend darauf gespeicherte Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessor veranlassen zum: Speichern der mehreren Konfigurationen von Hardwareressourcen, um eine der Arbeitslastanforderung zugeordnete Arbeitslast in einer nachfolgenden Stufe durchzuführen, wobei die mehreren Konfigurationen von Hardwareressourcen für den Zugriff durch eine oder mehrere Beschleunigervorrichtungen verfügbar sind, um die Arbeitslast durchzuführen und Auswählen einer oder mehrerer Hardwareressourcen für die Durchführung der, der Arbeitslastanforderung zugeordneten Arbeitslast basierend auf einer oder mehreren von den mehreren Konfigurationen von Hardwareressourcen.
DE102022107621.0A 2021-05-19 2022-03-30 Resourcenauswahl, die zum teil auf der arbeitslast basiert Pending DE102022107621A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/324,525 2021-05-19
US17/324,525 US20210271517A1 (en) 2021-05-19 2021-05-19 Resource selection based in part on workload

Publications (1)

Publication Number Publication Date
DE102022107621A1 true DE102022107621A1 (de) 2022-11-24

Family

ID=77462934

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022107621.0A Pending DE102022107621A1 (de) 2021-05-19 2022-03-30 Resourcenauswahl, die zum teil auf der arbeitslast basiert

Country Status (2)

Country Link
US (1) US20210271517A1 (de)
DE (1) DE102022107621A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11551552B2 (en) * 2018-07-30 2023-01-10 GM Global Technology Operations LLC Distributing processing resources across local and cloud-based systems with respect to autonomous navigation
US11753019B2 (en) * 2020-11-30 2023-09-12 Sony Group Corporation Event determination for vehicles and occupants of mobility provider on MaaS platform
US11604682B2 (en) * 2020-12-31 2023-03-14 EMC IP Holding Company LLC Pre-emptive container load-balancing, auto-scaling and placement
US11800404B1 (en) 2021-05-20 2023-10-24 Amazon Technologies, Inc. Multi-tenant radio-based application pipeline processing server
US11720425B1 (en) 2021-05-20 2023-08-08 Amazon Technologies, Inc. Multi-tenant radio-based application pipeline processing system
US11916999B1 (en) 2021-06-30 2024-02-27 Amazon Technologies, Inc. Network traffic management at radio-based application pipeline processing servers
US11539582B1 (en) 2021-08-30 2022-12-27 Amazon Technologies, Inc. Streamlined onboarding of offloading devices for provider network-managed servers
US20230102063A1 (en) * 2021-09-28 2023-03-30 Advanced Micro Devices, Inc. Providing an optimized service-based pipeline
CN115982080A (zh) * 2021-10-14 2023-04-18 华为技术有限公司 数据处理方法、装置、系统、设备、存储介质及程序产品
CN114205353B (zh) * 2021-11-26 2023-08-01 华东师范大学 一种基于混合动作空间强化学习算法的计算卸载方法
DE112021008546T5 (de) * 2021-12-23 2024-10-24 Intel Corporation Verfahren, systeme, herstellungsartikel und einrichtungen zur arbeitslastkomplexitätsschätzung
US11765100B1 (en) * 2022-04-19 2023-09-19 Bank Of America Corporation System for intelligent capacity planning for resources with high load variance
US11985065B2 (en) 2022-06-16 2024-05-14 Amazon Technologies, Inc. Enabling isolated virtual network configuration options for network function accelerators
US11824943B1 (en) 2022-06-29 2023-11-21 Amazon Technologies, Inc. Managed connectivity between cloud service edge locations used for latency-sensitive distributed applications
US11937103B1 (en) 2022-08-17 2024-03-19 Amazon Technologies, Inc. Enhancing availability of radio-based applications using multiple compute instances and virtualized network function accelerators at cloud edge locations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140572B2 (en) * 2015-06-25 2018-11-27 Microsoft Technology Licensing, Llc Memory bandwidth management for deep learning applications
US9912774B2 (en) * 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10209764B2 (en) * 2016-12-20 2019-02-19 Intel Corporation Apparatus and method for improving power-performance using a software analysis routine
US20190044809A1 (en) * 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller

Also Published As

Publication number Publication date
US20210271517A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
DE112020007201T5 (de) Speicherzuordnung für verteilte Verarbeitungsvorrichtungen
US20220029929A1 (en) Technologies that provide policy enforcement for resource access
DE112020006967T5 (de) Performanceüberwachung für kurzlebige funktionen
DE102020118307A1 (de) Proaktiver daten-vorabruf mit angewandter quality-of-service
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
US20210266253A1 (en) Pooling of network processing resources
DE112020006859T5 (de) Beibehaltung von speicher-namensraum-identifizierern für die migration von virtualisierten ausführungsumgebungen im laufenden betrieb
US20200241926A1 (en) Selection and management of disaggregated computing resources
US20210258265A1 (en) Resource management for components of a virtualized execution environment
US11496419B2 (en) Reliable transport offloaded to network devices
DE102020201834A1 (de) Technologien für netzvorrichtungslastausgleichseinrichtungen für beschleunigte funktionen-als-dienst
DE102019130686A1 (de) Technologien zur bereitstellung dynamischer auswahl von edge- und lokalen beschleunigerressourcen
US20210117244A1 (en) Resource manager access control
DE102020201347A1 (de) Technologien zum abgleichen von sicherheitsanforderungen von funktion-als-dienst in edge-clouds
US20210326221A1 (en) Network interface device management of service execution failover
US20210329354A1 (en) Telemetry collection technologies
US20220086226A1 (en) Virtual device portability
DE102022124530A1 (de) Speicherpoolmanagement
US20210120077A1 (en) Multi-tenant isolated data regions for collaborative platform architectures
DE102020110582A1 (de) TECHNOLOGIEN ZUR AUTOMATISCHEN ARBEITSLASTERKENNUNG UND CACHE-QoS-RICHTLINIENANWENDUNG
DE102020130555A1 (de) Adaptiver datenversand basierend auf lastfunktionen
DE102020202583A1 (de) Technologien für multi-tier-abruf in einem kontextbewussten edge-gateway
DE102019101114A1 (de) System, Vorrichtung und Verfahren zum Bereitstellen einer Fabric für einen Beschleuniger
EP4198728A1 (de) Verfahren und vorrichtung zur durchführung von arbeitslastverwaltung in einem disaggregierten rechnersystem