DE112021001681T5 - Skizzieren von matrizen unter verwendung analoger kreuzschienen-architekturen - Google Patents

Skizzieren von matrizen unter verwendung analoger kreuzschienen-architekturen Download PDF

Info

Publication number
DE112021001681T5
DE112021001681T5 DE112021001681.4T DE112021001681T DE112021001681T5 DE 112021001681 T5 DE112021001681 T5 DE 112021001681T5 DE 112021001681 T DE112021001681 T DE 112021001681T DE 112021001681 T5 DE112021001681 T5 DE 112021001681T5
Authority
DE
Germany
Prior art keywords
matrix
low
rank
matrices
computer
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
DE112021001681.4T
Other languages
English (en)
Inventor
Lior Horesh
Oguzhan Onen
Haim Avron
Tayfun Gokmen
Vasileios Kalantzis
Shashanka Ubaru
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.)
Ramot at Tel Aviv University Ltd
International Business Machines Corp
Original Assignee
Ramot at Tel Aviv University Ltd
International Business Machines 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 Ramot at Tel Aviv University Ltd, International Business Machines Corp filed Critical Ramot at Tel Aviv University Ltd
Publication of DE112021001681T5 publication Critical patent/DE112021001681T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/373Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Geometry (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Architecture (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)
  • Electronic Switches (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

Es wird ein auf einem Computer implementiertes Verfahren zum Durchführen von einem Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur vorgelegt. Das Verfahren umfasst Niedrig-Rang-Aktualisieren einer ersten Matrix für eine erste Zeitspanne, ein Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit, Wechseln zu einer zweiten Matrix, um bei der zweiten Matrix für eine zweite Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen, während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen, Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit, Zurückwechseln zur ersten Matrix, um bei der ersten Matrix für eine dritte Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen, und, während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Streaming-Algorithmen und im Besonderen auf ein Skizzieren von Matrizen unter Verwendung von analogen Kreuzschienen-Architekturen (crossbar architectures).
  • Tiefe neuronale Netzwerke (deep neural network, DNN) haben enorme Fortschritte gemacht und übertreffen in einigen Fällen die Leistung von Menschen, wenn es um die Bewältigung anspruchsvoller Probleme wie Spracherkennung, Verarbeitung natürlicher Sprache, Bildklassifizierung und maschinelle Übersetzung geht. Das Training großer DNNs ist jedoch eine zeitaufwändige und rechenintensive Aufgabe, die Datenverarbeitungsressourcen in der Größenordnung von Rechenzentren erfordert, die mit modernsten Grafikverarbeitungseinheiten (graphical processing unit, GPU) ausgestattet sind. Es gibt Versuche, Deep-Learning-Arbeitslasten jenseits von GPUs zu beschleunigen, indem benutzerdefinierte Hardware entwickelt wird, die Arithmetik mit reduzierter Präzision verwendet, um den Durchsatz und die Energieeffizienz der zugrunde liegenden CMOS-Technologie (complementary metal oxide semiconductor, komplementärer Metalloxid-Halbleiter) zu verbessern. Als Alternative zu digitalen Ansätzen werden Anordnungen mit resistiven Kreuzpunkt-Einheiten vorgeschlagen, um den Durchsatz und die Energieeffizienz des Gesamtsystems weiter zu erhöhen, indem Vektor-Matrix-Multiplikationen im analogen Bereich durchgeführt werden.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform wird ein Verfahren zum Durchführen von einem Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das Verfahren umfasst Aktualisieren einer ersten Matrix für eine erste Zeitspanne, Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit, Wechseln zu einer zweiten Matrix, um die zweite Matrix für eine zweite Zeitspanne zu aktualisieren, während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen, ein Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit, Zurückwechseln zur ersten Matrix, um die erste Matrix für eine dritte Zeitspanne zu aktualisieren, und, während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
  • Gemäß einer anderen Ausführungsform wird ein System zum Durchführen des Skizzierens von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das System umfasst einen Speicher und einen oder mehrere Prozessoren, die Daten mit dem Speicher austauschen und die so konfiguriert sind, dass sie eine erste Matrix für eine erste Zeitspanne aktualisieren, die erste Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit wechseln, um die zweite Matrix für eine zweite Zeitspanne zu aktualisieren, während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, erste stochastische Impulse zu der ersten Matrix zuführen, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen, die zweite Matrix in die dynamische Korrektur-Datenverarbeitungseinheit kopieren, zur ersten Matrix zurückwechseln, um die erste Matrix für eine dritte Zeitspanne zu aktualisieren, und, während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, zweite stochastische Impulse zu der zweiten Matrix zuführen, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
  • Gemäß einer weiteren Ausführungsform wird ein nichtflüchtiges, durch einen Computer lesbares Speichermedium vorgelegt, das ein durch einen Computer lesbares Programm aufweist, um ein Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur durchzuführen. Das nichtflüchtige, durch einen Computer lesbare Speichermedium führt die folgenden Schritte aus: Aktualisieren einer ersten Matrix für eine erste Zeitspanne, Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit, Wechseln zu einer zweiten Matrix, um die zweite Matrix für eine zweite Zeitspanne zu aktualisieren, während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen, ein Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit, ein Zurückwechseln zur ersten Matrix, um die erste Matrix für eine dritte Zeitspanne zu aktualisieren, und, während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
  • Gemäß einer Ausführungsform wird ein Verfahren zum Durchführen des Skizzierens von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das Verfahren umfasst Durchführen einer Dimensionalitätsreduzierung an Streaming-Daten unter Verwendung von Aktualisierungen eines äußeren Produkts sowie, sobald die Dimensionalitätsreduzierung an einer gesamten Eingabe durchgeführt wurde, Übertragen einer skizzierten Matrix an einen digitalen Computer, um eine Regressionsanalyse durchzuführen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
  • Gemäß einer anderen Ausführungsform wird ein System zum Durchführen des Skizzierens von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur bereitgestellt. Das System umfasst einen Speicher und einen oder mehrere Prozessoren, die Daten mit dem Speicher austauschen und die so konfiguriert sind, dass sie für eine Dimensionalitätsreduzierung an Streaming-Daten unter Verwendung von Aktualisierungen eines äußeren Produkts durchführen, sowie, sobald die Dimensionalitätsreduzierung an einer gesamten Eingabe durchgeführt wurde, eine skizzierte Matrix an einen digitalen Computer übertragen, um eine Regressionsanalyse durchzuführen. Bei den Aktualisierungen handelt es sich um Niedrig-Rang-Aktualisierungen.
  • Es ist zu beachten, dass die beispielhaften Ausführungsformen unter Bezugnahme auf verschiedene Gegenstände beschrieben werden. Insbesondere werden einige Ausführungsformen unter Bezugnahme auf Ansprüche bezüglich der Art des Verfahrens beschrieben, während andere Ausführungsformen unter Bezugnahme auf Ansprüche bezüglich der Art der Vorrichtung beschrieben wurden. Der Fachmann wird jedoch aus dem Vorstehenden und der folgenden Beschreibung entnehmen, dass, sofern nicht anders mitgeteilt, zusätzlich zu jeder Kombination von Funktionen, die zu einer Art von Gegenstand gehören, auch jede Kombination von Funktionen, die sich auf verschiedene Gegenstände beziehen, insbesondere von Funktionen der Ansprüche bezüglich der Art des Verfahrens und Funktionen der Ansprüche bezüglich der Art der Vorrichtung, als in diesem Dokument beschrieben gilt.
  • Diese und andere Funktionen und Vorteile werden aus der folgenden detaillierten Beschreibung veranschaulichender Ausführungsformen davon ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
  • Figurenliste
  • In der folgenden Beschreibung von bevorzugten Ausführungsformen wird die Erfindung unter Bezugnahme auf die folgenden Figuren detailliert bereitgestellt, wobei:
    • 1 eine beispielhafte analoge Kreuzschienen-Architektur darstellt, die Skizzier-Matrizen gemäß einer Ausführungsform der vorliegenden Erfindung verwendet;
    • 2 eine beispielhafte 3D-Kreuzschienenanordnung darstellt, die die Skizzier-Matrizen von 1 gemäß einer Ausführungsform der vorliegenden Erfindung einbezieht;
    • 3 ein beispielhaftes System für analoges Streaming mit dynamischer Berechnung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 4 beispielhafte Diagramme zeigt, die drei verschiedene Eigenschaften für das Wechseln von Einheiten darstellen, die Symmetriepunkte veranschaulichen, gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 5 ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens für zwei Anordnungen darstellt, die parallel in einem Integrationsschema mit offenem Regelkreis eingesetzt werden, gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 6 ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens zum Wechseln zwischen der ersten und der zweiten Matrix gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 7 ein beispielhaftes Verarbeitungssystem gemäß Ausführungsformen der vorliegenden Erfindung darstellt;
    • 8 ein Blockschaubild/einen Ablaufplan einer beispielhaften Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 9 eine schematische Darstellung von beispielhaften Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 10 ein Blockschaubild/einen Ablaufplan eines Verfahrens zum Durchführen eines Integrationsschemas mit offenem Regelkreis in Systemen/Einheiten/Infrastrukturen des Internets der Dinge (IdD; Internet of Things, loT) gemäß Ausführungsformen der vorliegenden Erfindung darstellt; und
    • 11 ein Blockschaubild/einen Ablaufplan von beispielhaften IdD-Sensoren darstellt, die zum Erfassen von Daten/Informationen im Zusammenhang mit dem Streaming-Algorithmus des Integrationsschemas mit offenem Regelkreis gemäß Ausführungsformen der vorliegenden Erfindung verwendet werden.
  • In den Zeichnungen stehen gleiche oder ähnliche Bezugsziffern für gleiche oder ähnliche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen gemäß der vorliegenden Erfindung stellen Verfahren und Einheiten zum Durchführen des Skizzierens von Matrizen unter Verwendung von analogen Kreuzschienen-Architekturen bereit. Dank der jüngsten Fortschritte bei den Datenerfassungstechniken werden enorme Datenmengen extrem schnell erfasst. Zudem sind diese Daten potenziell unbegrenzt. Ein unbegrenzter Fluss von Daten, die von Sensoren, Geräten und anderen Datenquellen erfasst werden, wird als Datenstrom bezeichnet. Auf der Suche nach interessanten Mustern können verschiedene Data-Mining-Aufgaben an Datenströmen durchgeführt werden. Bei Data-Mining-Aufgaben werden in der Regel Daten-Streaming-Algorithmen eingesetzt.
  • Streaming-Algorithmen sind in der Lage, einen extrem großen, sogar unbegrenzten Datensatz zu verarbeiten und eine gewünschte Ausgabe lediglich unter Verwendung einer konstanten Menge an Arbeitsspeicher (RAM) zu berechnen. Ist der Datensatz unbegrenzt, spricht man von einem Datenstrom. Wird in einem solchen Fall ein Verarbeiten des Datenstroms an einer bestimmten Position n angehalten, verfügt der Streaming-Algorithmus über eine Lösung, die den bis zu diesem Zeitpunkt gesichteten Daten entspricht. Streaming-Algorithmen sind also Algorithmen zum Verarbeiten von Datenströmen, bei denen die Eingabe als eine Sequenz von Elementen vorgelegt wird und in nur wenigen Durchgängen (in der Regel nur einem) untersucht werden kann. In den meisten Modellen steht diesen Algorithmen nur ein begrenzter Speicher zur Verfügung. Ferner kann die Verarbeitungszeit pro Element begrenzt sein. Diese Beschränkungen können dazu führen, dass ein Algorithmus auf der Grundlage einer Zusammenfassung oder „Skizze“ des Datenstroms eine ungefähre Antwort liefert.
  • Die beispielhaften Ausführungsformen der vorliegenden Erfindung verwenden ein auf einem Streaming-Algorithmus beruhendes Skizzieren von Matrizen unter Verwendung von analogen Kreuzschienen-Architekturen. Eine endgültige Skizzier-Matrix wird in einer analogen Kreuzschienen-Hardware angeordnet. Das äußere Produkt der endgültigen Skizzier-Matrix wird durch ein Anwenden von stochastischen Impulsen verändert. Nachdem der Vorgang des Skizzierens auf die gesamte Eingabe durchgeführt wurde, wird die endgültige skizzierte Matrix auf einen digitalen Computer übertragen, um eine Regressionsanalyse durchzuführen.
  • Es versteht sich, dass die vorliegende Erfindung anhand einer bestimmten veranschaulichenden Architektur beschrieben wird; andere Architekturen, Strukturen, Substratmaterialien und Prozessfunktionen sowie Schritte/Blöcke können jedoch innerhalb des Umfangs der vorliegenden Erfindung variiert werden. Es ist zu beachten, dass bestimmte Funktionen aus Gründen der Übersichtlichkeit nicht in allen Figuren dargestellt werden können. Dies soll nicht als Einschränkung einer bestimmten Ausführungsform, einer Darstellung oder des Umfangs der Ansprüche verstanden werden.
  • 1 stellt eine beispielhafte analoge Kreuzschienen-Architektur dar, die Skizzier-Matrizen gemäß einer Ausführungsform der vorliegenden Erfindung verwendet.
  • Die analoge Kreuzschienen-Anordnung 100 umfasst eine Mehrzahl von resistiven Skizzier-Verarbeitungseinheiten (resistive processing unit, RPU) 110, die in einer Matrixkonfiguration angeordnet sind. Das äußere Produkt wird durch ein Durchführen von stochastischen Impulsen 102, 104 verändert. Das äußere Produkt wird verändert, um die Rang-Eins-Aktualisierungen implizit zu berechnen und zu aktualisieren. Am Ende der Operation liegt die endgültige Skizzier-Matrix in analoger Form vor. Der Lösungsvorgang kann entweder analog oder digital durchgeführt werden. Die Impulse reduzieren die Multiplikation auf eine einfache Koinzidenzerkennung 115, die von den RPU-Einheiten 110 durchgeführt werden kann.
  • Beim stochastischen Aktualisierungsschema werden die aus den Spalten und Zeilen (xi und δj) codierten Zahlen unter Verwendung von stochastischen Umsetzungsprogrammen in stochastische Bitströme übersetzt. Diese stochastischen Umsetzungsprogramme passen die Impulswahrscheinlichkeiten an der Peripherie an und steuern somit die Gesamtzahl der Impulskoinzidenzen, die an jedem Kreuzschienenelement auftreten. Bei diesem Schema werden diese Impulse gleichzeitig für alle Zeilen und alle Spalten in die Kreuzschienen-Anordnung gesendet, und dann ändert die entsprechende RPU-Einheit bei jedem Koinzidenzereignis ihren Leitwert um einen kleinen Betrag Δgmin. Es gibt jedoch viele Impulse im Impulsstrom, so dass die vom Algorithmus erforderliche Änderung des Gesamtleitwerts Δgtotal,ij, als eine Reihe kleiner Änderungen des Leitwerts Δgmin pro Impulskoinzidenz realisiert wird. Infolgedessen erfolgt die Aktualisierung des Gewichts als eine Reihe von Koinzidenzereignissen, die jeweils ein Leitwertinkrement (oder Leitwertdekrement) auslösen. Bei Δwmin handelt es sich um die erwartete Änderung des Gewichts aufgrund eines einzelnen Koinzidenzereignisses. Es sei darauf hingewiesen, dass die an der peripheren Einheit erzeugten Impulse an allen RPU-Einheiten innerhalb der Spalte (oder der Zeile) durchgeführt werden, und daher können stochastische Umsetzungsprogramme einen einzigen Wert Δgmin, (oder äquivalent Δwmin) für die gesamte Anordnung annehmen, wenn die Impulswahrscheinlichkeiten so berechnet werden, dass sie die gewünschte Gewichtsänderung an jeder RPU ergeben.
  • 2 stellt eine beispielhafte 3D-Kreuzschienenanordnung dar, die die Skizzier-Matrizen von 1 gemäß einer Ausführungsform der vorliegenden Erfindung einbezieht.
  • In verschiedenen beispielhaften Ausführungsformen stellt die Skizzier-Matrix 110 eine Speicherzelle dar, die zwischen einer Mehrzahl von Bitleitungen 122 und einer Mehrzahl von Wortleitungen 124 eingefügt ist. Die Anordnung 120 ergibt sich also aus senkrecht zueinander stehenden leitenden Wortleitungen (Zeilen) 124 und Bitleitungen (Spalten) 122, wobei am Schnittpunkt zwischen jeder Zeile und Spalte eine Skizzier-Matrix 110 angeordnet ist. Auf die Skizzier-Matrix 110 mit einem resistiven Speicherelement kann lesend und schreibend zugegriffen werden, indem die entsprechende Wortleitung 124 und Bitleitung 122 mit Vorspannung versehen werden.
  • 3 stellt ein beispielhaftes System für analoges Streaming mit dynamischer Berechnung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • Das System 130 umfasst eine erste Matrix 132 und eine zweite Matrix 134. Die erste Matrix 132 und die zweite Matrix 134 tauschen Daten mit einer dynamischen Korrektur-Datenverarbeitungseinheit 136 aus.
  • Die erste Matrix 132 wird für eine erste Zeitspanne τ1 aktualisiert. Nachdem die erste Matrix 132 aktualisiert wurde, wird sie in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine zweite Zeitspanne τ2 zu der zweiten Matrix 134 gewechselt. Während die zweite Matrix 134 aktualisiert wird, werden der ersten Matrix 132 stochastische Impulse zugeführt, um die erste Matrix 132 wieder auf einen Symmetriepunkt zurückzusetzen. Die zweite Matrix 134 wird dann in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine dritte Zeitspanne τ3 zu der ersten Matrix 132 zurückgewechselt. Während die erste Matrix 132 wieder aktualisiert wird, werden der zweiten Matrix 134 stochastische Impulse zugeführt, um die zweite Matrix 134 wieder auf einen Symmetriepunkt zurückzusetzen. Dieser Vorgang wird wiederholt, bis eine endgültige Skizzier-Matrix SXy vorliegt.
  • Die Nutzung der zweiten Anordnung 134 ermöglicht einen kontinuierlichen Betrieb auf Kosten der zusätzlichen Architektur. Die Streaming-Daten (X, y) sollten normalisiert werden, um den Asymmetrieeffekt nicht noch weiter zu verstärken. Außerdem sollten die Aktualisierungen so skaliert werden, dass die endgültige SXy zwischen (-0,1, 0,1) für einen kompletten Bereich von (-1,1) eingestellt wird, um näher am Symmetriepunkt (0) zu operieren.
  • In alternativen Ausführungsformen entfällt die Notwendigkeit der dynamischen Korrektur, wenn die Einheiten vollkommen symmetrisch sind. In diesen Fällen kann eine einzige Anordnung verwendet werden, ohne dass eine Übertragungs-/Nullsetzungsoperation erforderlich ist. Alternativ kann die Nullsetzung übersprungen werden unter der Voraussetzung, dass die zufällige Sequenz die Operation in der Nähe des Symmetriepunkts gewährleistet. In solchen Fällen kann wiederum eine einzige Einheit zusätzlich zu einer digitalen Akkumulationseinheit verwendet werden, bei der die Kopieroperation in kleinen Schritten (z.B. Spalte für Spalte) durchgeführt wird. Alle diese Entscheidungen können je nach der vorliegenden Problemstellung und den vorliegenden Einheiten flexibel und austauschbar getroffen werden.
  • Bei dem Streaming-Algorithmus handelt es sich um einen Integrationsalgorithmus mit offenem Regelkreis. Daher ist bei dem Ansatz eines dynamischen Systems mit einer sekundären Anordnung nicht gewährleistet, dass die erste Matrix zurückgesetzt wird. Diese Algorithmen beruhen jedoch im Gegensatz zu neuronalen Netzwerken nicht auf einer Vektor-Matrix-Multiplikation, so dass die Akkumulationsmatrix in einer digitalen Umgebung vorliegen kann. So können stattdessen zwei Anordnungen oder Matrizen 132, 134 parallel im Wechsel verwendet werden.
  • In alternativen Ausführungsformen können auch mehr als 2 Matrizen verwendet werden. Es können zum Beispiel 3 Matrizen verwendet werden. In einer anderen beispielhaften Ausführungsform können 4 Matrizen verwendet werden. Natürlich kann ein Fachmann eine Mehrzahl von Matrizen in Betracht ziehen, die in Koordination mit der dynamischen Korrektur-Datenverarbeitungseinheit 136 eingesetzt werden. In einem Fall kann eine erste Matrix für eine erste Zeitspanne τ1 aktualisiert werden. Nachdem die erste Matrix aktualisiert wurde, wird sie in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine zweite Zeitspanne τ2 zu einer zweiten Matrix gewechselt. Während die zweite Matrix aktualisiert wird, werden der ersten Matrix und einer dritten Matrix stochastische Impulse zugeführt, um die erste und die dritte Matrix wieder auf ihren jeweiligen Symmetriepunkt zurückzusetzen. Die zweite Matrix wird dann in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin zu der dritten Matrix gewechselt, damit die dritte Matrix für eine dritte Zeitspanne τ3 aktualisiert werden kann. Nachdem die dritte Matrix aktualisiert wurde, wird sie in die dynamische Korrektur-Datenverarbeitungseinheit 136 kopiert. Die Aktualisierungsfunktion wird daraufhin für eine vierte Zeitspanne τ4 zu der ersten Matrix zurückgewechselt. Während die erste Matrix aktualisiert wird, werden der zweiten und der dritten Matrix stochastische Impulse zugeführt, um die zweite und die dritte Matrix wieder auf ihren jeweiligen Symmetriepunkt zurückzusetzen. So kann eine Matrix aktualisiert werden, und zwei weiteren Matrizen können stochastische Impulse zugeführt werden, um sie auf ihren jeweiligen Symmetriepunkt zurückzusetzen. In ähnlicher Weise kann eine Matrix aktualisiert werden, und drei weiteren Matrizen können stochastische Impulse zugeführt werden, um sie auf ihren jeweiligen Symmetriepunkt zurückzusetzen. So kann eine Mehrzahl von Matrizen mit einer oder mehreren dynamischen Korrektur-Datenverarbeitungseinheiten 136 verbunden werden, wobei eine Matrix aktualisiert wird, während allen anderen Matrizen stochastische Impulse zugeführt werden, um sie auf ihren jeweiligen Symmetriepunkt zurückzusetzen. Daher sind die beispielhaften Ausführungsformen nicht auf eine bestimmte Anzahl von mit der dynamischen Korrektur-Datenverarbeitungseinheit 136 verbundenen Matrizen beschränkt.
  • 4 zeigt beispielhafte Diagramme, die drei verschiedene Eigenschaften für das Wechseln von Einheiten darstellen, die Symmetriepunkte veranschaulichen, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Bei asymmetrischen Aktualisierungen hängt die inkrementelle Änderung, die die analogen Einheiten beim Aktualisieren erfahren, vom Gewichtswert ab, der mit einem Softbound-Modell dargestellt werden kann. Dieser Effekt führt zu einer Verzerrung und beeinträchtigt die Trainingsleistung erheblich (Erzeugen von SXy). Für diese Einheiten gibt es einen Punkt, an dem Δwincrement(w) = Δwdecrement(w) ist, der als Symmetriepunkt bezeichnet wird. Eine zufällige Sequenz von Inkrement- und Dekrementoperationen mit gleicher Wahrscheinlichkeit würde den Zustand der Einheit unweigerlich zu diesem Symmetriepunkt führen. Dieses Verhalten wird bei Streaming-Algorithmen beobachtet, da Streaming-Algorithmen eine große Anzahl inkrementeller Änderungen aufweisen. Dazu ist es erforderlich, dass diese analog resistiven Einheiten ihren Leitwert symmetrisch ändern, wenn sie positiven oder negativen Spannungsimpulsen ausgesetzt werden.
  • 4 zeigt drei verschiedene Eigenschaften für das Wechseln von Einheiten. Bei der idealen Einheit 160 weisen die Inkremente und Dekremente des Leitwerts die gleiche Größe auf und hängen nicht von dem Leitwert der Einheit ab. Bei der symmetrischen Einheit 170 weisen die Inkremente und Dekremente des Leitwerts die gleiche Stärke auf, sind aber beide von dem Leitwert der Einheit abhängig. Bei der asymmetrischen Einheit 180 weisen die Inkremente und Dekremente des Leitwerts nicht die gleiche Stärke auf und sind beide unterschiedlich stark von dem Leitwert der Einheit abhängig. Es gibt jedoch einen einzigen Punkt, an dem die Stärke des Leitwertinkrements und des Leitwertdekrements die gleiche Größe aufweist. Dieser Punkt wird als Symmetriepunkt bezeichnet und stimmt im gezeigten Beispiel mit dem Referenzleitwert der Einheit überein, liegt also bei = 0. Der Symmetriepunkt 162 ist in der idealen Einheit 160 dargestellt, der Symmetriepunkt 172 ist in der symmetrischen Einheit 170 dargestellt, und der Symmetriepunkt 182 ist in der asymmetrischen Einheit 180 dargestellt.
  • Es ist zu beachten, dass es selbst für die in 180 dargestellte asymmetrische Einheit einen einzigen Punkt (Leitwert) gibt, bei dem die Stärke des Leitwertinkrements und des Leitwertdekrements die gleiche Größe aufweist. Dieser Punkt wird als Symmetriepunkt der aktualisierten Einheit bezeichnet und kann aufgrund der Abweichungen von Einheit zu Einheit einem beliebigen Gewichtswert entsprechen (der nicht unbedingt Null sein muss, wie in 180 gezeigt).
  • 5 stellt ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens für zwei Anordnungen dar, die parallel in einem Integrationsschema mit offenem Regelkreis eingesetzt werden, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • In Block 202, Niedrig-Rang-Aktualisieren der ersten Matrix für eine erste Zeitspanne.
  • In Block 204, Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit.
  • In Block 206, Wechseln zu der zweiten Matrix, um bei der zweiten Matrix für eine zweite Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen
  • In Block 208, während (oder zur gleichen Zeit, gleichzeitig) bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von Impulsen zu der ersten Matrix, um sie auf einen Symmetriepunkt zurückzusetzen.
  • In Block 210, Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit.
  • In Block 212, Wechseln zu der ersten Matrix, um bei der ersten Matrix für eine dritte Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen.
  • In Block 214, während (oder zur gleichen Zeit, gleichzeitig) bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von Impulsen zu der zweiten Matrix, um sie auf einen Symmetriepunkt zurückzusetzen.
  • 6 stellt ein Blockschaubild/einen Ablaufplan eines beispielhaften Verfahrens zum Wechseln zwischen der ersten und der zweiten Matrix gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • In Block 220 wartet das Verfahren.
  • In Block 222 wird ermittelt, ob eine neue Stichprobe eingegangen ist. Wenn NEIN, fährt der Prozess mit Block 230 fort, wo die Matrix ausgelesen und die Einheit gewechselt wird. Wenn JA, fährt der Prozess mit Block 224 fort.
  • In Block 224 wird ein Vektor „s“ erzeugt.
  • In Block 226 wird ein analoges Niedrig-Rang-Aktualisieren durchgeführt, und der Prozess fährt mit Block 220 fort.
  • In Block 232 wird die Matrix entweder in digitaler Form oder in einer separaten analogen Einheit gespeichert.
  • 7 stellt ein beispielhaftes Verarbeitungssystem zum Verarbeiten von Streaming-Algorithmen gemäß Ausführungsformen der vorliegenden Erfindung dar.
  • Unter Bezugnahme auf 7 zeigt diese Figur eine Hardwarekonfiguration des Datenverarbeitungssystems 600 gemäß einer Ausführungsform der vorliegenden Erfindung. Wie zu sehen ist, verfügt diese Hardwarekonfiguration über mindestens einen Prozessor oder eine Zentraleinheit (CPU) 611. Die CPUs 611 sind über einen Systembus 612 mit einem Direktzugriffsspeicher (RAM) 614 verbunden, sowie mit einem Nur-Lese-Speicher (ROM) 616, einem Eingabe-/Ausgabe-(E/A)-Adapter 618 (zum Anschließen von peripheren Einheiten wie beispielsweise Platteneinheiten 621 und Bandlaufwerken 640 an den Bus 612), einem Benutzerschnittstellenadapter 622 (zum Anschließen einer Tastatur 624, einer Maus 626, eines Lautsprechers 628, eines Mikrofons 632 und/oder einer anderen Benutzerschnittstelleneinheit an den Bus 612), einem Datenübertragungsadapter 634 zum Anschließen des Systems 600 an ein Datenverarbeitungsnetz, das Internet, ein Intranet, ein lokales Netzwerk (LAN) usw., und einem Anzeigeadapter 636 zum Verbinden des Busses 612 mit einer Anzeigeeinheit 638 und/oder einem Drucker 639 (z.B. einem digitalen Drucker oder dergleichen).
  • 8 stellt ein Blockschaubild/einen Ablaufplan einer beispielhaften Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 8 stellt ein Blockschaubild/einen Ablaufplan einer beispielhaften Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Erfindung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Benutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt, und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 8 wird eine veranschaulichende Cloud-Computing-Umgebung 750 gezeigt, die Anwendungsfälle der vorliegenden Erfindung ermöglicht. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 750 einen oder mehrere Cloud-Computing-Knoten 710 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 754A, der Desktop-Computer 754B, der Laptop-Computer 754C und/oder das Automobil-Computer-System 754N Daten austauschen können. Die Knoten 710 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie Private, Community, Public oder Hybrid Clouds gruppiert werden (nicht dargestellt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 750, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die Arten von in 8 gezeigten Datenverarbeitungseinheiten 754A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 710 und die Cloud-Computing-Umgebung 750 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • 9 zeigt eine schematische Darstellung von beispielhaften Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung. Es sollte von vornherein klar sein, dass die in 9 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 860 umfasst Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 861; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 862; Server 863; Blade-Server 864; Speichereinheiten 865; und Netzwerke sowie Netzwerkkomponenten 866. In einigen Ausführungsformen umfassen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 867 und eine Datenbank-Software 868.
  • Die Virtualisierungsschicht 870 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 871; virtueller Speicher 872; virtuelle Netzwerke 873, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 874; und virtuelle Clients 875.
  • In einem Beispiel kann die Verwaltungsschicht 880 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 881 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 882 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 883 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 884 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 885 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 890 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 891; Software-Entwicklung und Lebenszyklusverwaltung 892; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 893; Datenanalytikverarbeitung 894; Transaktionsverarbeitung 895; und ein Streaming-Algorithmus 896.
  • 10 stellt ein Blockschaubild/einen Ablaufplan eines Verfahrens zum Durchführen eines Integrationsschemas mit offenem Regelkreis in Systemen/Einheiten/Infrastrukturen des Internets der Dinge (IdD; Internet of Things, loT) gemäß Ausführungsformen der vorliegenden Erfindung dar.
  • Gemäß einigen Ausführungsformen der Erfindung wird ein Netzwerk unter Verwendung einer IdD-Methodik implementiert. Zum Beispiel kann der Streaming-Algorithmus 902 in am Körper tragbare (wearable), implantierbare oder einnehmbare elektronische Einheiten und Sensoren des Internets der Dinge (IdD) integriert werden. Zu den am Körper tragbaren, implantierbaren oder einnehmbaren Einheiten können zumindest Gesundheits- und Wellness-Überwachungsgeräte sowie Fitnessgeräte gehören. Die am Körper tragbaren, implantierbaren oder einnehmbaren Einheiten können darüber hinaus auch implantierbare Einheiten, intelligente Uhren (smart watches), am Kopf getragene Einheiten, Sicherheits- und Präventionseinheiten sowie Spiel- und Lifestyle-Einheiten umfassen. Die IdD-Sensoren können zumindest in Heimautomatisierungsanwendungen, Automobilanwendungen, Benutzerschnittstellenanwendungen, Lifestyle- und/oder Unterhaltungsanwendungen, Stadt- und/oder Infrastrukturanwendungen, Spielzeuge, das Gesundheitswesen, den Fitnessbereich, Einzelhandels-Tags und/oder-Tracker, Plattformen und Komponenten usw. integriert werden. Der hier beschriebene Streaming-Algorithmus 902 kann in jede Art von elektronischen Einheiten für jede Art von Nutzung oder Anwendung oder Operation eingebunden werden.
  • Durch IdD-Systeme können Nutzer eine tiefergehende Automatisierung, Analyse und Integration innerhalb eines Systems erreichen. Das Internet der Dinge verbessert die Reichweite dieser Bereiche und ihre Genauigkeit. Das Internet der Dinge nutzt bestehende und neue Technologien für Sensorik, Netzwerke und Robotik. Zu den Funktionen des Internets der Dinge gehören künstliche Intelligenz, Konnektivität, Sensoren, aktives Engagement und die Verwendung kleiner Einheiten. In verschiedenen Ausführungsformen kann der Streaming-Algorithmus 902 der vorliegenden Erfindung in eine Vielfalt von verschiedenen Einheiten und/oder Systemen eingebunden werden. Zum Beispiel kann der Streaming-Algorithmus 902 in am Körper tragbare bzw. generell tragbare elektronische Einheiten 904 integriert werden. Zu den am Körper tragbaren/generell tragbaren elektronischen Einheiten 904 können auch implantierbare Einheiten 940 gehören, zum Beispiel intelligente Kleidung 943. Am Körper tragbare/generell tragbare Einheiten 904 können intelligente Uhren 942 und intelligenten Schmuck 945 umfassen. Darüber hinaus können am Körper tragbare/generell tragbare Einheiten 904 Fitness-Überwachungseinheiten 944, Gesundheits- und Wellness-Überwachungseinheiten 946, am Kopf getragene Einheiten 948 (z.B. intelligente Brillen 949), Sicherheits- und Präventionssysteme 950, Spiele- und Lifestyle-Einheiten 952, Smartphones/Tablets 954, Media-Player 956 und/oder Computer/Datenverarbeitungseinheiten 958 umfassen.
  • Der Streaming-Algorithmus 902 der vorliegenden Erfindung kann ferner in Sensoren des Internets der Dinge (IdD) 906 für verschiedene Anwendungen integriert werden, zum Beispiel Hausautomatisierung 920, Automobil 922, Benutzerschnittstelle 924, Lifestyle und/oder Unterhaltung 926, Stadt und/oder Infrastruktur 928, Einzelhandel 910, Tags und/oder Tracker 912, Plattform und Komponenten 914, Spielzeuge 930 und/oder Gesundheitswesen 932 sowie Fitness 934. Die IdD-Sensoren 906 können den Streaming-Algorithmus 902 verwenden. Natürlich kann ein Fachmann in Betracht ziehen, einen solchen Streaming-Algorithmus 902 in jede Art von elektronischen Einheiten für jede Art von Anwendungen einzubinden, und ist nicht auf die hier beschriebenen beschränkt.
  • 11 stellt ein Blockschaubild/einen Ablaufplan von beispielhaften IdD-Sensoren dar, die zum Erfassen von Daten/Informationen im Zusammenhang mit dem Streaming-Algorithmus des Integrationsschemas mit offenem Regelkreis gemäß den Ausführungsformen der vorliegenden Erfindung verwendet werden.
  • Ohne Sensoren verliert das Internet der Dinge seine Besonderheit. IdD-Sensoren sind das entscheidende Instrument, um das Internet der Dinge von einem standardmäßigen passiven Netzwerk von Einheiten in ein aktives System zu verwandeln, das sich in die reale Welt integrieren lässt.
  • Die IdD-Sensoren 906 können den Streaming-Algorithmus 902 verwenden, um Informationen/Daten kontinuierlich und in Echtzeit über ein Netzwerk 908 an jede Art von verteiltem System zu übertragen. Zu Beispielen für IdD-Sensoren 906 können Positions-/ Anwesenheits-/Näherungssensoren 1002 gehören, sowie Bewegungs-/ Geschwindigkeitssensoren 1004, Verschiebungssensoren 1006 wie Beschleunigungs-/ Neigungssensoren 1007, Temperatursensoren 1008, Luftfeuchtigkeits-/ Feuchtigkeitssensoren 1010 sowie Strömungssensoren 1011, Akustik-/Schall-/ Vibrationssensoren 1012, chemische Sensoren/Gassensoren 1014, Kraft-/Last-/ Drehmoment-/Dehnungs-/Drucksensoren 1016 und/oder elektrische/magnetische Sensoren 1018, ohne auf diese beschränkt zu sein. Ein Fachmann kann ein Verwenden einer beliebigen Kombination solcher Sensoren in Erwägung ziehen, um Daten/Informationen über den Streaming-Algorithmus 902 des verteilten Systems zur weiteren Verarbeitung zu erfassen. Ein Fachmann kann ein Verwenden anderer Arten von IdD-Sensoren in Erwägung ziehen, zum Beispiel Magnetometer, Gyroskope, Bildsensoren, Lichtsensoren, RFID-Sensoren (radio frequency identification, Radiofrequenzidentifikation) und/oder Mikroströmungssensoren, ohne auf diese beschränkt zu sein. Zu den IdD-Sensoren können auch Energiemodule, Module zur Verwaltung der Stromversorgung, HF-Module und Sensormodule gehören. HF-Module verwalten die Datenübertragung durch ihre Signalverarbeitung, WiFi, ZigBee®, Bluetooth®, Funk-Transceiver, Duplexer usw.
  • Wie hier verwendet, können die Begriffe „Daten“, „Inhalt“, „Information“ und ähnliche Begriffe austauschbar verwendet werden, um sich auf Daten zu beziehen, die gemäß verschiedenen beispielhaften Ausführungsformen erfasst, übertragen, empfangen, angezeigt und/oder gespeichert werden können. Das Verwenden solcher Begriffe sollte daher nicht als Einschränkung des Sinngehalts und Umfangs der Offenbarung verstanden werden. Ferner können in den Fällen, in denen hier bei einer Datenverarbeitungseinheit ein Empfangen von Daten von einer anderen Datenverarbeitungseinheit beschrieben wird, die Daten direkt von der anderen Datenverarbeitungseinheit empfangen werden oder indirekt über eine oder mehrere zwischengeschaltete Datenverarbeitungseinheiten empfangen werden, wie zum Beispiel einen oder mehrere Server, Relais, Leitwegrechner, Netzwerkzugriffspunkte, Basisstationen und/oder dergleichen.
  • Um eine Interaktion mit einem Benutzer bereitzustellen, können Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands auf einem Computer implementiert werden, der über eine Anzeigeeinheit zum Anzeigen von Informationen für den Benutzer verfügt, zum Beispiel ein CRT-Monitor (cathode ray tube, Kathodenstrahlröhre) oder LCD-Monitor (liquid crystal display, Flüssigkristallanzeige), sowie über eine Tastatur und eine Zeigeeinheit, zum Beispiel eine Maus oder einen Trackball, mit denen der Benutzer Eingaben für den Computer bereitstellen kann. Es können auch andere Arten von Einheiten verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; zum Beispiel kann es sich bei der dem Benutzer bereitgestellten Rückmeldung um eine beliebige Form der sensorischen Rückmeldung handeln, zum Beispiel eine visuelle Rückmeldung, auditive Rückmeldung oder tastbare Rückmeldung, und die Eingaben des Benutzers können in beliebiger Form empfangen werden, unter anderem als akustische, sprachliche oder tastbare Eingabe.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragungen, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Flussdiagramm-Darstellungen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Flussdiagramm-Darstellungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können mindestens einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfassen, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Blöcken/Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Ein Verweis in der Spezifikation auf „eine einzelne Ausführungsform“ oder „eine Ausführungsform“ der vorliegenden Grundgedanken sowie andere Variationen davon bedeutet, dass eine bestimmte, in Verbindung mit der Ausführungsform beschriebene Funktion, Struktur, Eigenschaft und so weiter in mindestens einer Ausführungsform der vorliegenden Grundgedanken enthalten ist. Daher bezieht sich das Auftreten des Ausdrucks „in einer einzelnen Ausführungsform“ oder „in einer Ausführungsform“ und jede andere Variante davon an verschiedenen Stellen in der Spezifikation nicht zwangsläufig auf dieselbe Ausführungsform.
  • Es sei darauf hingewiesen, dass die Verwendung von „/“, „und/oder“ und „mindestens eines von“, zum Beispiel im Fall von „A/B“, „A und/oder B“ bzw. „mindestens eines von A und B“, nur die Auswahl der ersten aufgeführten Option (A) oder nur die Auswahl der zweiten aufgeführten Option (B) oder die Auswahl beider Optionen (A und B) umfassen soll. Als weiteres Beispiel soll diese Formulierung im Fall von „A, B und/oder C“ bzw. „mindestens eines von A, B und C“ nur die Auswahl der ersten aufgeführten Option (A) oder nur die Auswahl der zweiten aufgeführten Option (B) oder nur die Auswahl der dritten aufgeführten Option (C) umfassen, oder nur die Auswahl der ersten und der zweiten aufgeführten Option (A und B), oder nur die Auswahl der ersten und der dritten aufgeführten Option (A und C), oder nur die Auswahl der zweiten und der dritten aufgeführten Option (B und C), oder die Auswahl aller drei Optionen (A und B und C). Dies kann, wie für einen Fachmann dieser und verwandter Techniken leicht ersichtlich ist, auf beliebig viele Punkte ausgedehnt werden.
  • Nachdem bevorzugte Ausführungsformen eines Systems und Verfahrens für einen Streaming-Algorithmus unter Verwendung analoger Kreuzschienen-Architekturen beschrieben wurden (die zur Veranschaulichung dienen und nicht einschränkend sein sollen), wird darauf hingewiesen, dass Änderungen und Variationen von Fachleuten im Hinblick auf die obigen Lehren vorgenommen werden können. Es versteht sich daher, dass an den jeweiligen beschriebenen Ausführungsformen Änderungen vorgenommen werden können, die in den Umfang der Erfindung fallen, wie er in den beigefügten Ansprüchen beschrieben ist. Nachdem somit Aspekte der Erfindung mit den von den Patentgesetzen geforderten Einzelheiten und Besonderheiten beschrieben worden sind, ist das, was beansprucht und durch die Patentschrift geschützt werden soll, in den beigefügten Ansprüchen dargelegt.

Claims (25)

  1. Auf einem Computer implementiertes Verfahren, das auf einem Prozessor ausgeführt wird, um ein Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur durchzuführen, wobei das Verfahren aufweist: Niedrig-Rang-Aktualisieren einer ersten Matrix für eine erste Zeitspanne; Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit; Wechseln zu einer zweiten Matrix, um bei der zweiten Matrix für eine zweite Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; während bei der zweiten Matrix das Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen; Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit; Zurückwechseln zu der ersten Matrix, um bei der ersten Matrix für eine dritte Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; und während bei der ersten Matrix das Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen.
  2. Verfahren nach Anspruch 1, wobei die erste und die zweite Matrix in der analogen Kreuzschienen-Architektur angeordnet sind.
  3. Verfahren nach Anspruch 1, wobei die erste und die zweite Matrix Streaming-Daten enthalten.
  4. Verfahren nach Anspruch 3, wobei die Streaming-Daten normalisiert werden, um Asymmetrieeffekte zu verhindern.
  5. Verfahren nach Anspruch 4, wobei das Niedrig-Rang-Aktualisieren der ersten und der zweiten Matrix so skaliert wird, dass eine endgültige Skizzier-Matrix auf einen Wert zwischen (-0,1, 0,1) für einen kompletten Bereich von (-1, 1) eingestellt wird, um nahe an den Asymmetriepunkten der ersten und der zweiten Matrix zu operieren.
  6. Verfahren nach Anspruch 5, wobei, nachdem das Skizzieren der Matrix an einer gesamten Eingabe durchgeführt wurde, eine endgültige Skizzier-Matrix auf einen digitalen Computer übertragen wird, um eine Regressionsanalyse durchzuführen.
  7. Verfahren nach Anspruch 1, wobei die dynamische Korrektur-Datenverarbeitungseinheit gleichzeitig die erste und die zweite Matrix korrigiert.
  8. Nichtflüchtiges, durch einen Computer lesbares Speichermedium, das ein durch einen Computer lesbares Programm aufweist, das auf einem Prozessor in einem Datenverarbeitungssystem ausgeführt wird, um ein Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur durchzuführen, wobei das durch einen Computer lesbare Programm, wenn es auf dem Prozessor ausgeführt wird, einen Computer veranlasst, die Schritte auszuführen: Niedrig-Rang-Aktualisieren einer ersten Matrix für eine erste Zeitspanne; Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit; Wechseln zu einer zweiten Matrix, um bei der zweiten Matrix für eine zweite Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen; Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit; Zurückwechseln zu der ersten Matrix, um bei der ersten Matrix für eine dritte Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; und während bei der ersten Matrix das Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen.
  9. Nichtflüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 8, wobei die erste und die zweite Matrix in der analogen Kreuzschienen-Architektur angeordnet sind.
  10. Nichtflüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 8, wobei die erste und die zweite Matrix Streaming-Daten enthalten.
  11. Nichtflüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 10, wobei die Streaming-Daten normalisiert werden, um Asymmetrieeffekte zu verhindern.
  12. Nichtflüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 11, wobei das Niedrig-Rang-Aktualisieren der ersten und der zweiten Matrix so skaliert wird, dass eine endgültige Skizzier-Matrix auf einen Wert zwischen (-0,1, 0,1) für einen kompletten Bereich von (-1, 1) eingestellt wird, um nahe an den Asymmetriepunkten der ersten und der zweiten Matrix zu operieren.
  13. Nichtflüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 12, wobei, nachdem das Skizzieren der Matrix an einer gesamten Eingabe durchgeführt wurde, eine endgültige Skizzier-Matrix auf einen digitalen Computer übertragen wird, um eine Regressionsanalyse durchzuführen.
  14. Nichtflüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 8, wobei die dynamische Korrektur-Datenverarbeitungseinheit gleichzeitig die erste und die zweite Matrix korrigiert.
  15. System, um ein Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur durchzuführen, wobei das Verfahren aufweist: einen Speicher; und einen oder mehrere Prozessoren, die mit dem Speicher Daten austauschen, für: Niedrig-Rang-Aktualisieren einer ersten Matrix für eine erste Zeitspanne; Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit; Wechseln zu einer zweiten Matrix, um bei der zweiten Matrix für eine zweite Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; während bei der zweiten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen; Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit; Zurückwechseln zu der ersten Matrix, um bei der ersten Matrix für eine dritte Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; und während bei der ersten Matrix ein Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen.
  16. System nach Anspruch 15, wobei die erste und die zweite Matrix in der analogen Kreuzschienen-Architektur angeordnet sind.
  17. System nach Anspruch 15, wobei die erste und die zweite Matrix Streaming-Daten enthalten.
  18. System nach Anspruch 17, wobei die Streaming-Daten normalisiert werden, um Asymmetrieeffekte zu verhindern.
  19. System nach Anspruch 18, wobei das Niedrig-Rang-Aktualisieren der ersten und der zweiten Matrix so skaliert wird, dass eine endgültige Skizzier-Matrix auf einen Wert zwischen (-0,1, 0,1) für einen kompletten Bereich von (-1, 1) eingestellt wird, um nahe an den Asymmetriepunkten der ersten und der zweiten Matrix zu operieren.
  20. System nach Anspruch 19, wobei, nachdem das Skizzieren der Matrix an einer gesamten Eingabe durchgeführt wurde, die endgültige Skizzier-Matrix auf einen digitalen Computer übertragen wird, um eine Regressionsanalyse durchzuführen.
  21. System nach Anspruch 15, wobei die dynamische Korrektur-Datenverarbeitungseinheit gleichzeitig die erste und die zweite Matrix korrigiert.
  22. Auf einem Computer implementiertes Verfahren, das auf einem Prozessor ausgeführt wird, um das Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur durchzuführen, wobei das Verfahren aufweist: Durchführen einer Dimensionalitätsreduzierung an Streaming-Daten unter Verwendung von Niedrig-Rang-Aktualisierungen eines äußeren Produkts; und nachdem die Dimensionalitätsreduzierung an einer gesamten Eingabe durchgeführt wurde, Übertragen einer skizzierten Matrix auf einen digitalen Computer, um eine Regressionsanalyse durchzuführen.
  23. Verfahren nach Anspruch 22, wobei die skizzierte Matrix von einer ersten Matrix und einer zweiten Matrix abgeleitet wird, die im Wechsel parallel verwendet werden.
  24. Verfahren nach Anspruch 23, das ferner aufweist: Niedrig-Rang-Aktualisieren der ersten Matrix für eine erste Zeitspanne; Kopieren der ersten Matrix in eine dynamische Korrektur-Datenverarbeitungseinheit; Wechseln zu der zweiten Matrix, um bei der zweiten Matrix für eine zweite Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; während bei der zweiten Matrix das Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von ersten stochastischen Impulsen zu der ersten Matrix, um die erste Matrix auf einen ersten Matrix-Symmetriepunkt zurückzusetzen; Kopieren der zweiten Matrix in die dynamische Korrektur-Datenverarbeitungseinheit; Zurückwechseln zu der ersten Matrix, um bei der ersten Matrix für eine dritte Zeitspanne ein Niedrig-Rang-Aktualisieren durchzuführen; und während bei der ersten Matrix das Niedrig-Rang-Aktualisieren durchgeführt wird, Zuführen von zweiten stochastischen Impulsen zu der zweiten Matrix, um die zweite Matrix auf einen zweiten Matrix-Symmetriepunkt zurückzusetzen.
  25. System, um ein Skizzieren von Matrizen unter Verwendung einer analogen Kreuzschienen-Architektur durchzuführen, wobei das Verfahren aufweist: einen Speicher; und einen oder mehrere Prozessoren, die mit dem Speicher Daten austauschen, für: Durchführen einer Dimensionalitätsreduzierung an Streaming-Daten unter Verwendung von Niedrig-Rang-Aktualisierungen eines äußeren Produkts; und nachdem die Dimensionalitätsreduzierung an einer gesamten Eingabe durchgeführt wurde, Übertragen einer skizzierten Matrix auf einen digitalen Computer, um eine Regressionsanalyse durchzuführen.
DE112021001681.4T 2020-05-15 2021-04-13 Skizzieren von matrizen unter verwendung analoger kreuzschienen-architekturen Pending DE112021001681T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/874,819 US11520855B2 (en) 2020-05-15 2020-05-15 Matrix sketching using analog crossbar architectures
US16/874,819 2020-05-15
PCT/IB2021/053027 WO2021229320A1 (en) 2020-05-15 2021-04-13 Matrix sketching using analog crossbar architectures

Publications (1)

Publication Number Publication Date
DE112021001681T5 true DE112021001681T5 (de) 2023-03-09

Family

ID=78512568

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021001681.4T Pending DE112021001681T5 (de) 2020-05-15 2021-04-13 Skizzieren von matrizen unter verwendung analoger kreuzschienen-architekturen

Country Status (10)

Country Link
US (1) US11520855B2 (de)
JP (1) JP2023524822A (de)
KR (1) KR20230019819A (de)
CN (1) CN115605872A (de)
AU (1) AU2021271202B2 (de)
CA (1) CA3174813A1 (de)
DE (1) DE112021001681T5 (de)
GB (1) GB2610758A (de)
IL (1) IL297054A (de)
WO (1) WO2021229320A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114970290B (zh) * 2022-07-27 2022-11-01 中国地质大学(武汉) 一种地面瞬变电磁法并行反演方法及系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548798A (en) 1994-11-10 1996-08-20 Intel Corporation Method and apparatus for solving dense systems of linear equations with an iterative method that employs partial multiplications using rank compressed SVD basis matrices of the partitioned submatrices of the coefficient matrix
JP3486613B2 (ja) 2001-03-06 2004-01-13 キヤノン株式会社 画像処理装置およびその方法並びにプログラム、記憶媒体
US6910060B2 (en) 2001-05-21 2005-06-21 Computational Sensor Corp. Spatio-temporal filter and method
US9715655B2 (en) * 2013-12-18 2017-07-25 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems
US10318608B2 (en) * 2014-08-21 2019-06-11 Massachusetts Institute Of Technology Systems and methods for low-rank matrix approximation
CN105160664B (zh) 2015-08-24 2017-10-24 西安电子科技大学 基于低秩模型的压缩感知视频重构方法
US10325006B2 (en) 2015-09-29 2019-06-18 International Business Machines Corporation Scalable architecture for analog matrix operations with resistive devices
US10248907B2 (en) * 2015-10-20 2019-04-02 International Business Machines Corporation Resistive processing unit
US9524775B1 (en) 2015-10-20 2016-12-20 International Business Machines Corporation Correlation detector
WO2017185049A1 (en) * 2016-04-22 2017-10-26 Cylance Inc. Dimensionality reduction of computer programs
US10891538B2 (en) 2016-08-11 2021-01-12 Nvidia Corporation Sparse convolutional neural network accelerator
US10241971B2 (en) 2016-12-15 2019-03-26 Hewlett Packard Enterprise Development Lp Hierarchical computations on sparse matrix rows via a memristor array
US10755170B2 (en) * 2017-03-01 2020-08-25 International Business Machines Corporation Resistive processing unit with hysteretic updates for neural network training
US11055610B2 (en) * 2017-06-30 2021-07-06 International Business Machines Corporation Circuit for CMOS based resistive processing unit
US10878317B2 (en) 2017-09-11 2020-12-29 Samsung Electronics Co., Ltd. Method and system for performing analog complex vector-matrix multiplication
WO2019133829A1 (en) 2017-12-29 2019-07-04 Spero Devices, Inc. Digital architecture supporting analog co-processor
US11443176B2 (en) 2018-05-17 2022-09-13 International Business Machines Corporation Acceleration of convolutional neural networks on analog arrays
CN109522956B (zh) 2018-11-16 2022-09-30 哈尔滨理工大学 一种低秩判别特征子空间学习方法
US11361050B2 (en) * 2018-11-20 2022-06-14 Hewlett Packard Enterprise Development Lp Assigning dependent matrix-vector multiplication operations to consecutive crossbars of a dot product engine
US11651231B2 (en) * 2019-03-01 2023-05-16 Government Of The United States Of America, As Represented By The Secretary Of Commerce Quasi-systolic processor and quasi-systolic array

Also Published As

Publication number Publication date
AU2021271202A1 (en) 2022-11-10
GB2610758A (en) 2023-03-15
GB202218489D0 (en) 2023-01-25
CN115605872A (zh) 2023-01-13
AU2021271202B2 (en) 2023-12-21
US20210357540A1 (en) 2021-11-18
US11520855B2 (en) 2022-12-06
KR20230019819A (ko) 2023-02-09
WO2021229320A1 (en) 2021-11-18
CA3174813A1 (en) 2021-11-18
JP2023524822A (ja) 2023-06-13
IL297054A (en) 2022-12-01

Similar Documents

Publication Publication Date Title
DE112018006189T5 (de) Robuste gradienten-gewichtskomprimierungsschemata für deep-learning-anwendungen
DE112017007510T5 (de) Blockchain für offene wissenschaftliche forschung
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE112020005095T5 (de) Automatische trennung und extraktion von tabellendaten unter verwendung von maschinellem lernen
DE102018121757A1 (de) Durchführen von vektorvergleichsoperationen in einervollhomomorphen verschlüsselung
DE112020002110T5 (de) Ressourcenarme entitätsauflösung mit transfer learning
DE112020002042T5 (de) Erzeugen eines absichtserkennungsmodells auf grundlage von randomisierten absichtsvektornäherungen
DE112021002572T5 (de) Multikriterielles optimieren von anwendungen
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken
DE112019005373T5 (de) Framework für maschinelles lernen zum finden von materialien mit gewünschten eigenschaften
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
DE112021006215T5 (de) Automatisierte Deep-Learning-Architekturauswahl für Zeitreihenvorhersage mit Benutzerinteraktion
DE112020006449T5 (de) Verteilen von arbeitslasten bei berechnungen auf der grundlage einer berechneten berechnungsschwerkraft innerhalb unterschiedlicher datenverarbeitungsparadigmen
DE112021004694T5 (de) Trainieren eines frage-antwort-dialogsystems zum vermeiden von gegnerischen angriffen
DE102021124264A1 (de) Erzeugung von synthetischen Systemfehlern
DE112020004231T5 (de) Ausführen von skalarproduktoperationen unter verwendung einer memristiven crossbar-anordnung
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE112021003274T5 (de) Ressourcenzuordnung zum optimieren von hyperparametern bei umfangreichen deep-learning-arbeitslasten
DE112019003764B4 (de) Von der lage der zellen unabhängiges, in bezug auf die gewichtung linear aktualisierbares synaptisches cmos-array
DE112021001681T5 (de) Skizzieren von matrizen unter verwendung analoger kreuzschienen-architekturen
DE112020004487T5 (de) Erkennen von mutationsereignissen zum überwachen der integrität
DE112021004199T5 (de) Genauigkeit einer Datenstrom- Umsetzungsfunktion für rekurrente neuronale Netzwerke
DE112021004664T5 (de) Gattergesteuerte einheit für ein gattergesteuertes rekurrentes neuronales netzwerk
DE112020005930T5 (de) Initialisierung von arbeitsspeicher-netzwerken
DE112021005633T5 (de) Lernen eines abgleichens ungepaarter multimodaler merkmale für halbüberwachtes lernen

Legal Events

Date Code Title Description
R012 Request for examination validly filed