-
TECHNISCHES GEBIET
-
Die in diesem Patentdokument beschriebene Technologie bezieht sich allgemein auf Computerplattformen und insbesondere auf das Vorhersagen der Leistung von Computerplattformen unter Verwendung vorläufiger Design-Parameter.
-
HINTERGRUND
-
Computerplattformen, wie zentrale Verarbeitungseinheiten (CPUs), Mikroprozessoreinheiten (MPUs) und digitale Signalprozessoren (DSPs), werden in zahlreichen Produkten verwendet. Produkthersteller haben für den Einsatz in ihren Produkten ein umfangreiches Angebot an Computerplattformen zur Auswahl. Bei einigen Produktdesigns werden Computerplattformen zur Verwendung ausgewählt, bevor die Computerplattformen auf physische Form reduziert wurden.
-
Dementsprechend ist es wünschenswert, ein System für das Vorhersagen der Leistung einer Computerplattform und eines System für das Auswählen einer Computerplattform basierend auf der vorhergesagten Leistung der Computerplattform bereitzustellen, wenn eine in Betracht gezogene Computerplattform nicht auf eine physische Form reduziert wurde. Außerdem werden andere wünschenswerte Merkmale und Eigenschaften der vorliegenden Erfindung aus der nachfolgenden ausführlichen Beschreibung der Erfindung und den hinzugefügten Ansprüchen in Verbindung mit den zugehörigen Zeichnungen und dem Hintergrund der Erfindung sichtbar.
-
KURZDARSTELLUNG
-
Es wird ein System für das Auswählen einer Computerplattform bereitgestellt. Das System beinhaltet einen oder mehrere Prozessoren und nichtflüchtige computerlesbare Medien. Das nichtflüchtige computerlesbare Medium ist mit Programmieranweisungen codiert, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, bewirken, dass das System Plattformmerkmaldaten für jede aus einer Vielzahl von existierenden Computerplattformen in einer bestimmten Klasse von Computermodellen sammelt. Die Plattformmerkmaldaten für jede der Vielzahl von vorhandenen Computerplattformen beinhalten eine Vielzahl von Design-Parametern und eine Leistungsmessung für die Computerplattform, wenn eine Benchmarking-Softwarekomponente ausgeführt wird. Das nichtflüchtige computerlesbare Medium ist ferner mit Programmieranweisungen codiert, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass das System ein mathematisches Modell unter Verwendung der gesammelten Plattformmerkmaldaten schult, um ein Vorhersagemodell für die Vorhersage einer vorhergesagten Leistungsmessung einer Computerplattform in der bestimmten Klasse von Computermodellen zu entwickeln, wenn sie mit Design-Parametern versehen sind, die üblicherweise auf einem Plattformanbieterdatenblatt zu finden sind, und mit dem Vorhersagemodell die vorhergesagte Leistungsmessung einer neuen Computerplattform vorhersagen, die nicht zum Testen verfügbar ist.
-
Es wird ein computerimplementiertes Verfahren für das Auswählen einer Computerplattform bereitgestellt. Das Verfahren beinhaltet das Sammeln von Plattformmerkmaldaten für jede einer Vielzahl von existierenden Computerplattformen in einer bestimmten Klasse von Computerplattformen. Die Plattformmerkmaldaten für jede der Vielzahl von vorhandenen Computerplattformen beinhalten eine Vielzahl von Design-Parametern und eine Leistungsmessung für die Computerplattform, um eine Benchmarking-Softwarekomponente abzuschließen. Das Verfahren beinhaltet ferner das Schulen eines mathematischen Modells unter Verwendung der gesammelten Plattformmerkmaldaten, um ein Vorhersagemodell für die Vorhersage einer vorhergesagten Leistungsmessung einer Computerplattform in der bestimmten Klasse von Computerplattformen zu entwickeln, wenn sie mit Entwurfsparametern versehen sind, und mit dem Vorhersagemodell die vorhergesagte Leistungsmessung einer neuen Computerplattform vorherzusagen, die nicht zum Testen verfügbar ist, sowie die Auswahl einer Computerplattform unter Verwendung der vorhergesagten Leistungsmessung.
-
Figurenliste
-
Aspekte der vorliegenden Offenbarung werden am besten aus der folgenden ausführlichen Beschreibung verstanden, wenn sie mit den zugehörigen Figuren gelesen wird, wobei gleiche Bezugszeichen gleiche Elemente bezeichnen, und
- 1 ein Verfahrensablaufdiagramm ist, das ein exemplarisches computerimplementiertes Verfahren auf der Grundlage von maschinellem Lernen für das Vorhersagen der Leistung einer Computerplattform zeigt, wenn sie beauftragt wird, eine spezifische Softwareanwendung auszuführen, gemäß einigen Ausführungsformen;
- 2 ein Verfahrensablaufdiagramm ist, das ein exemplarisches Verfahren für das Sammeln von Entwurfsparametern und Benchmark-Daten für eine Vielzahl von Computerplattformen darstellt, gemäß einigen Ausführungsformen;
- 3 ein Verfahrensablaufdiagramm ist, das ein exemplarisches Verfahren für das Schulen eines Modells darstellt, gemäß einigen Ausführungsformen;
- 4 ein Verfahrensablaufdiagramm ist, das ein exemplarisches Verfahren für das Testen eines Vorhersagemodells darstellt, gemäß einigen Ausführungsformen;
- 5 ein Verfahrensablaufdiagramm ist, das ein exemplarisches Verfahren für das Vorhersagen einer Leistung einer Ziel-Computerplattform darstellt, gemäß einigen Ausführungsformen;
- 6 ein Diagramm ist, das exemplarische Plattformmerkmaldaten zeigt, die in einem Datensatz gespeichert und verwendet werden können, um ein Vorhersagemodell unter Verwendung eines Verfahrens wie dem in 2 dargestellten zu schulen, gemäß einigen Ausführungsformen;
- 7 ein Diagramm ist, das die Verwendung der exemplarischen Plattformmerkmaldaten für das Schulen eines Vorhersagemodells unter Verwendung eines wie in den 3 und 4 gezeigten Verfahrens, darstellt, gemäß einigen Ausführungsformen;
- 8 ein Diagramm ist, das exemplarische Entwurfsparameter für eine Zielplattform zeigt, die einem Vorhersagemodell bereitgestellt werden können, um die Ausführungszeit der Zielplattform unter Verwendung eines wie in 5 veranschaulichten Verfahrens vorauszusagen, gemäß einigen Ausführungsformen; und
- 9 ein schematisches Blockdiagramm eines exemplarischen Computersystems ist, das verwendet werden kann, um die hierin beschriebenen Techniken und Verfahren zu implementieren, gemäß einigen Ausführungsformen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende Offenbarung stellt viele verschiedene Ausführungsformen oder Beispiele für das Implementieren verschiedener Merkmale des bereitgestellten Gegenstands bereit. Die folgende ausführliche Beschreibung ist lediglich exemplarischer Natur und soll die Erfindung oder die Anwendung und die Verwendungen der Erfindung nicht einschränken. Darüber hinaus besteht keinerlei Verpflichtung zur Einschränkung auf eine der im vorstehenden Hintergrund oder in der folgenden ausführlichen Beschreibung dargestellten Theorien.
-
Der hierin beschriebene Gegenstand offenbart Vorrichtungen, Systeme, Techniken und Artikel, basierend auf maschinellem Lernen, um die Leistung einer Computerplattform bei dem Ausführen einer Softwareanwendung vorherzusagen. Die beschriebenen Techniken ermöglichen die Vorhersage der Leistung einer Computerplattform, ohne dass tatsächlich eine Software auf der Computerplattform implementiert und ausgeführt wird. Die Vorhersagen können getätigt werden, bevor die Computerplattform in physischer Form verfügbar ist. Die beschriebenen Techniken ermöglichen die Vorhersage der Leistungsfähigkeit einer Computerplattform ohne Verwendung eines Simulators, der eine detaillierte Modellierung der Computerplattform benötigt. Die beschriebenen Techniken können abstrakte Informationen (wie z. B. spezifische Design-Parameter, wie Frequenz, Cache, Pipeline-Tiefe usw.) bezüglich der Computerplattform verwenden. Die beschriebenen Techniken können Vorhersagen liefern, die ausreichend genau sind, selbst wenn nicht alle Design-Parameter bekannt sind. Zusätzlich kann die Vorhersagegenauigkeit durch wiederholtes Anpassen des Vorhersagemodells systematisch verbessert werden.
-
1 ist ein Verfahrensablaufdiagramm, das ein exemplarisches computerimplementiertes Verfahren auf der Grundlage von maschinellem Lernen für das Vorhersagen der Leistung einer Computerplattform zeigt, wenn sie beauftragt wird, eine spezifische Softwareanwendung auszuführen. Die vorhergesagte Leistungsmessung in diesem Beispiel ist die vorhergesagte Ausführungszeit. Das Beispielverfahren kann die Ausführungszeit von Testsoftware auf der Computerplattform vorhersagen, ohne die Software tatsächlich auszuführen. Die Leistungsprognose kann als Datenpunkt verwendet werden, wenn eine Computerplattform für ein in Entwicklung befindliches Produkt ausgewählt wird. Dies kann die Auswahl einer Computerplattform zur Verwendung in einem neuen Produktdesign ermöglichen, bevor die Computerplattform in physischer Form für Softwaretests verfügbar ist.
-
Wie hierin verwendet, bezieht sich eine Computerplattform auf ein physikalisches Gerät, das Berechnungen ausführen kann, wie etwa eine zentrale Verarbeitungseinheit (CPU), eine Mikroprozessoreinheit (MPU), eine Mikrocontrollereinheit (MCU), einen anwendungsspezifischen Befehlssatzprozessor (ASIP), eine Grafikverarbeitungseinheit (GPU), eine Physikverarbeitungseinheit (PPU), einen digitalen Systemprozessor (DSP), einen Rechner mit beschränktem Befehlssatz-Prozessor (RISC), einen Bildprozessor, einen Coprozessor, eine Gleitkommaeinheit, einen Netzwerkprozessor, einen Mehrkernprozessor, einen Front-End-Prozessor, ein feldprogrammierbares Gate-Array (FPGA), eine Videoverarbeitungseinheit, eine Bildverarbeitungseinheit, eine Tensor-Verarbeitungseinheit (TPU), eine neuronale Verarbeitungseinheit (NPU), ein System auf einem Chip (SOC) und andere.
-
Das in 1 dargestellte exemplarische Verfahren beinhaltet Operationen für das Sammeln von Plattformmerkmaldaten für eine Vielzahl von existierenden Computerplattformen (Operation 102). Die vorhandenen Computerplattformen beziehen sich auf Plattformen, die sich in der gleichen Klasse von Plattformen wie die Computerplattform befinden, deren Leistung das Beispielverfahren vorhersagen soll. Wenn beispielsweise das exemplarische Verfahren implementiert wird, um die Leistung einer neuen in Entwicklung befindlichen GPU vorherzusagen, dann wären die existierenden Computerplattformen eine Teilmenge der GPUs, die zum Zeitpunkt der Ausführung des Beispielverfahrens existieren. Die Vielzahl von existierenden Computerplattformen, von denen Plattformmerkmaldaten gesammelt werden, kann als ein Schulungssatz von Computerplattformen bezeichnet werden.
-
Plattformmerkmaldaten enthalten in diesem Beispiel Design-Parameter und Benchmark-Daten. Design-Parameter beziehen sich in diesem Beispiel auf Arten von Daten, die typischerweise verwendet werden, um die Merkmale einer Computerplattform zu beschreiben. Beispiele für Design-Parameter beinhalten Betriebsfrequenz, Anzahl der Kerne, Anzahl der Threads, Anzahl der Caches, Größe der Caches, Größe des integrierten Speichers, Datenbusgröße (z. B. 32-Bit-, 64-Bit- usw.), Adressbusgröße, Betriebsspannung, Herstellungsverfahren, externe Speicher und andere leistungsbezogene Komponenten, die mit der Computerplattform verbunden sind.
-
Benchmark-Daten beziehen sich in diesem Beispiel auf Daten, die die Leistung der Computerplattform bei der Ausführung spezifischer Benchmark-Software beschreiben. Insbesondere beziehen sich Benchmark-Daten in diesem Beispiel auf eine Leistungsmessung, wie eine Ausführungszeit-Leistungsmessung für die Computerplattform. Insbesondere ist die Ausführungszeit-Leistungsmessung in diesem Beispiel die Ausführungszeit, die erforderlich ist, um die Ausführung der spezifischen Benchmarking-Software zu vervollständigen. In einem anderen Beispiel kann sich die Ausführungszeit-Leistungsmessung auf die Ausführungszeit der Computerplattform beziehen, um die Ausführung bestimmter Teile spezifischer Benchmark-Software zu vervollständigen. In anderen Beispielen können sich Benchmark-Daten auf andere Arten von Leistungsmessungen beziehen.
-
Das in 1 dargestellte exemplarische Verfahren beinhaltet ebenfalls Operationen für das Schulen und Evaluieren eines mathematischen Modells unter Verwendung der gesammelten Entwurfsparameter und Benchmark-Daten (Operation 104). Das Schulen eines mathematischen Modells unter Verwendung der gesammelten Plattformmerkmaldaten wird unter Verwendung von maschinellen Lerntechniken durchgeführt, um ein Vorhersagemodell oder einen Algorithmus für das Vorhersagen einer Ausführungszeit-Leistungsmessung für eine Computerplattform basierend auf den Design-Parametern der Computerplattform zu entwickeln. Als Beispiel bietet Waikato Environment for Knowledge Analysis (Weka) eine Open-Source-Suite von Software für maschinelles Lernen, die in Java geschrieben ist. Weka-Software kann unter Verwendung der hierin beschriebenen Operationen geschult werden, um ein Vorhersagemodell oder einen Algorithmus für das Vorhersagen einer Ausführungszeit-Leistungsmessung für eine Computerplattform basierend auf den Design-Parametern der Computerplattform zu entwickeln. In anderen Beispielen kann das Schulen eines mathematischen Modells unter Verwendung der gesammelten Plattformmerkmaldaten unter Verwendung von Maschinenlerntechniken durchgeführt werden, um ein Vorhersagemodell oder einen Algorithmus für das Vorhersagen einer oder mehrerer anderer Leistungsmessungen für eine Computerplattform basierend auf den Design-Parametern der Computerplattform zu entwickeln.
-
Abschließend beinhaltet das in 1 dargestellte exemplarische Verfahren Operationen für das Vorhersagen der Leistung einer neuen Computerplattform unter Verwendung des geschulten Modells (Operation 106). Unter Verwendung des geschulten Vorhersagemodells kann eine Leistungsmessung, wie z. B. eine Ausführungszeit-Leistungsmessung einer neuen Computerplattform die nicht in einer physikalischen Form ist, vorhergesagt werden. Diese Operationen ermöglichen die Leistungsprognosen einer Computerplattform, ohne dass tatsächlich eine Software auf der Computerplattform implementiert und ausgeführt wird.
-
Nach Implementierung des Beispielverfahrens zur Vorhersage der Leistung einer Computerplattform (z. B. vorhergesagte Ausführungszeit-Leistungsmessung) kann eine informierte Entscheidung getroffen werden, wenn eine Computerplattform für ein neues Produktdesign ausgewählt wird. Die Vorhersage-Information kann verwendet werden, wenn eine Computerplattform ausgewählt wird, die möglicherweise noch nicht in physischer Form zur Verwendung in einem Produktdesign verfügbar ist, und kann ein gewisses Maß an Sicherheit bieten, dass die Computerplattform, wenn sie verfügbar ist, die Leistungsanforderungen erfüllt.
-
2 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren des Sammelns von Entwurfsparametern und Benchmark-Daten für eine Vielzahl von Computerplattformen darstellt und ein Beispiel dafür liefert, wie die Operationen „Sammeln von Design-Parametern und Benchmark-Daten für eine Vielzahl von bestehenden Plattformen“ (Operation 102 von 1) durchgeführt werden kann. Das exemplarische Verfahren von 2 beinhaltet das Auswählen einer Computerplattform (Operation 202). Die ausgewählte Computerplattform sollte sich in derselben Klasse von Plattformen wie die neue Computerplattform befinden, für die ein Vorhersagemodell entwickelt wird, obwohl in einigen Beispielen die ausgewählte Computerplattform aus einer anderen Klasse stammen kann.
-
Für die ausgewählte Computerplattform werden Design-Parameter, die von dem Plattformanbieter bereitgestellt werden, zur Verwendung bei der Schulung eines Modells extrahiert (Operation 204). Als ein Beispiel können die Design-Parameter aus dem Datenblatt der Plattform extrahiert werden.
-
Außerdem wird die Leistung der ausgewählten Computerplattform unter Verwendung einer Benchmark-Software bewertet (Operation 206). Zum Beispiel kann die ausgewählte Computerplattform spezifische Benchmark-Software ausführen, um Benchmark-Daten zu erzeugen. Die Benchmark-Daten in diesem Beispiel können eine Messung der Ausführungszeit der Computerplattform beim Abschließen der Ausführung der spezifischen Benchmark-Software, oder die Ausführungszeit der Computerplattform bei dem Abschließen der Ausführung bestimmter Abschnitte der spezifischen Benchmark-Software umfassen. Alternativ können, wenn bereits Benchmark-Daten für eine ausgewählte Plattform vorhanden sind, die bereits vorhandenen Benchmark-Daten verwendet werden, anstatt die Leistung der Plattform mithilfe von Benchmark-Software zu bewerten, um neue Benchmark-Daten zu generieren.
-
Die relative Reihenfolge, in der die Operationen Design-Parameter extrahieren“ und „Plattformleistung mit Benchmark-Software auswerten“ durchgeführt werden, ist nicht wichtig. Jede Gruppe von Operationen kann ausgeführt werden, bevor die andere Gruppe von Operationen ausgeführt wird. Es spielt keine Rolle, welcher Satz von Operationen zuerst ausgeführt wird. Alternativ können beide Sätze von Operationen parallel ausgeführt werden.
-
Sowohl die extrahierten Design-Parameter als auch die Benchmarkdaten werden aufgezeichnet (Operation 208). Die extrahierten Design-Parameter und die Benchmark-Daten können in einem Datensatz in einer Computerspeichervorrichtung zur späteren Verwendung bei der Schulung eines Vorhersagemodells gespeichert werden.
-
Wenn Daten von zusätzlichen Plattformen gesammelt werden sollen (Entscheidung 210), werden die Operationen für das Auswählen einer Plattform, Extrahieren von Design-Parametern, Bewerten der Plattformleistung unter Verwendung einer Benchmark-Software und Aufzeichnen der Daten wiederholt. Andernfalls endet das Verfahren.
-
3 ist ein Verfahrensflussdiagramm, das ein exemplarisches Verfahren für das Schulen eines Modells darstellt und ein Beispiel dafür liefert, wie die Operationen „Schulen und Evaluieren eines Modells unter Verwendung von gesammelten Design-Parametern und Benchmark-Daten“ (Operation 104 von 1) durchgeführt werden können. Das exemplarische Verfahren von 3 beinhaltet das Abrufen der Plattformmerkmaldaten, d. h. die extrahierten Design-Parameter und die gemessenen Benchmarkdaten für jede der in dem Schulungssatz verwendeten Computerplattformen (Operation 302).
-
Die abgerufenen Plattformmerkmaldaten werden verwendet, um ein mathematisches Modell zu schulen, um durch Modellschätzung ein Vorhersagemodell zu entwickeln (Operation 304). Das Vorhersagemodell kann verwendet werden, um die Benchmark-Daten einer Computerplattform basierend auf Design-Parametern vorherzusagen.
-
Nachdem das Vorhersagemodell anfänglich geschult wurde, wird das Vorhersagemodell getestet (Operation 306). Das Testen kann das Vergleichen von Vorhersagedaten mit gemessenen Daten beinhalten, um die Vorhersagegenauigkeit zu ermitteln.
-
Es wird eine Entscheidung hinsichtlich der Genauigkeit des Vorhersagemodells getroffen (Entscheidung 308). Wenn das Vorhersagemodell Genauigkeitsschwellenwerte erfüllt, endet das Verfahren. Wenn das Vorhersagemodell die Genauigkeitsschwellenwerte nicht erfüllt, wird eine Entscheidung getroffen, das Modell zu überarbeiten (Operation 310), und das Vorhersagemodell wird angepasst, um ein überarbeitetes Vorhersagemodell zu bilden (Operation 304). Der Zyklus der Modellschätzung (Operation 304), des Modelltests (Operation 306), der Modellrevision (Operation 310) wird wiederholt, bis die Modellgenauigkeit akzeptabel ist (Entscheidung 308).
-
4 ist ein Verfahrensflussdiagramm, das ein exemplarisches Verfahren für das Testen eines Vorhersagemodells darstellt und ein Beispiel dafür liefert, wie die „Testmodell“-Operationen (Operation 306 von 3) durchgeführt werden können. In dem Beispielverfahren von 4 wird ein Satz von Test-Computerplattformen identifiziert (Operation 402). Aus dem Satz von Test-Computerplattformen wird eine bestimmte Testplattform ausgewählt (Operation 404). Die ausgewählte Testplattform sollte sich in der gleichen Plattformklasse wie der Satz der Schulungsplattformen befinden.
-
Für die ausgewählte Testplattform werden Design-Parameter, die von dem Plattformanbieter bereitgestellt werden, zur Verwendung bei der Schulung eines Modells extrahiert (Operation 406). Als ein Beispiel können die Design-Parameter aus dem Datenblatt der Plattform extrahiert werden. Die extrahierten Design-Parameter werden dem Vorhersagemodell zugeführt, damit das Vorhersagemodell die Benchmark-Leistung der Testplattform vorhersagen kann (Operation 408). Das Vorhersagemodell liefert eine Vorhersage darüber, was die Ausführungszeit der Testplattform wäre, wenn es die Benchmarking-Software ausführen würde, die während der Modellschulungsphase verwendet wurde. Die vorhergesagten Benchmark-Leistungsdaten werden aufgezeichnet (Operation 410).
-
Außerdem wird die Leistung der ausgewählten Testplattform unter Verwendung der gleichen Benchmark-Software evaluiert, die während der Modellschulungsphase verwendet wurde (Operation 412). Die Leistung der Testplattform kann durch Ausführen einer Benchmark-Software auf der Testplattform bewertet werden. Die Benchmark-Daten in diesem Beispiel können eine Messung der Ausführungszeit der Computerplattform beim Abschließen der Ausführung der spezifischen Benchmark-Software, oder die Ausführungszeit der Computerplattform bei dem Abschließen der Ausführung bestimmter Abschnitte der spezifischen Benchmark-Software umfassen. Alternativ können, wenn bereits Benchmark-Daten für eine ausgewählte Plattform vorhanden sind, die bereits vorhandenen Benchmark-Daten verwendet werden, anstatt die Leistung der Plattform mithilfe von Benchmark-Software zu bewerten, um neue Benchmark-Daten zu generieren. Die Benchmark-Leistungsdaten werden aufgezeichnet (Operation 414).
-
Die relative Reihenfolge, in der die Operationen „Design-Parameter extrahieren/Ausführungszeit vorhersagen“ und „Plattformleistung mit Benchmark-Software auswerten“ durchgeführt werden, ist nicht wichtig. Jede Gruppe von Operationen kann ausgeführt werden, bevor die andere Gruppe von Operationen ausgeführt wird. Es spielt keine Rolle, welcher Satz von Operationen zuerst ausgeführt wird. Alternativ können beide Sätze von Operationen parallel ausgeführt werden.
-
Die vorhergesagten Benchmark-Daten werden mit den tatsächlichen Benchmark-Daten verglichen (Operation 416). Die Genauigkeit des Vorhersagemodells wird basierend auf dem Vergleich bestimmt und berichtet (Operation 418).
-
5 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren für das Vorhersagen einer Leistung einer Ziel-Computerplattform darstellt. Eine Zielplattform wird für die Leistungsvorhersage ausgewählt (Operation 502). Design-Parameter werden aus Plattformanbieterinformationen extrahiert (Operation 504). Das Vorhersagemodell wird, z. B. nachdem das Testen und die Revision abgeschlossen wurden, verwendet, um die Leistung der Ziel-Computerplattform vorherzusagen (Operation 506). Eine vorhergesagte Leistungsmessung wird bereitgestellt (Operation 508). Die vorhergesagte Leistungsprognose kann verwendet werden, wenn eine Computerplattform für ein Produktdesign ausgewählt wird.
-
6 ist ein Diagramm, das exemplarische Plattformmerkmaldaten zeigt, die in einem Datensatz (z. B. in Reaktion auf die Operation 208 von 2) gespeichert und verwendet werden können, um ein Vorhersagemodell unter Verwendung eines Verfahrens wie dem in 2 dargestellten zu schulen. In diesem Beispiel werden Plattformmerkmaldaten für drei Computerplattformen, SoCl, SoC2 und SoC3, gezeigt. Die aufgezeichneten Design-Parameter beinhalten die Anzahl der Kerne, die Frequenz, die L2-Cache-Größe und die Größe des integrierten Speichers. Es werden ebenfalls die Ergebnisse (z. B. Ausführungszeit in diesem Beispiel) aus dem Benchmarking der SoCs oder aus historischen Daten, die Ausführungszeiten aus früheren Benchmarking erfasst, aufgezeichnet.
-
7 ist ein Diagramm, das die Verwendung der exemplarischen Plattformmerkmaldaten für das Schulen eines Vorhersagemodells unter Verwendung eines wie in den 3 und 4 gezeigten Verfahrens darstellt. In diesem Beispiel ist jeder Entwurfsparameter einer bestimmten Variablen zugeordnet und die Ausführungszeit ist die Ausgabe. Eine mathematische Formel, die das Verhältnis zwischen den Design-Parametern und der Ausführungszeit modelliert, wird durch maschinelle Lerntechniken bestimmt.
-
8 ist ein Diagramm, das exemplarische Entwurfsparameter für eine Zielplattform zeigt, die einem Vorhersagemodell bereitgestellt werden können, um die Ausführungszeit der Zielplattform unter Verwendung eines wie in 5 veranschaulichten Verfahrens vorauszusagen. Dieses Diagramm veranschaulicht, dass ein geeignet geschultes Vorhersagemodell, das gemäß den hierin beschriebenen Techniken entwickelt wurde, verwendet werden kann, um die Leistung einer Zielplattform zu schätzen.
-
9 ist ein schematisches Blockdiagramm eines exemplarischen Computersystems, das verwendet werden kann, um die hierin beschriebenen Techniken und Verfahren zu implementieren. Das exemplarische Computersystem kann ein oder mehrere Verarbeitungssysteme 902, einen Hauptspeicher 904, eine Netzwerkschnittstellenvorrichtung (NID) 910, einen Chipsatz 912, eine Festplatte 913 und einen Festplattencontroller 915, Eingabesysteme 916 und Ausgabesysteme 918 beinhalten.
-
Der Chipsatz 912 befindet sich normalerweise auf einem Motherboard und ist ein Satz elektronischer Komponenten (z. B. in einer integrierten Schaltung), die den Datenfluss zwischen dem oder den Verarbeitungssystemen 902 und anderen Elementen des Computersystems und den angeschlossenen Peripheriegeräten verbindet und verwaltet. So stellt beispielsweise der Chipsatz 912 eine Schnittstelle zwischen dem/den Verarbeitungssystem(en) 902 und dem Hauptspeicher 904 bereit und beinhaltet auch eine Funktionalität für das Bereitstellen einer Netzwerkkonnektivität durch den NID 910, beispielsweise einen Gigabit-Ethernet-Adapter. Der Chipsatz 912 enthält typischerweise die Prozessorbusschnittstelle (auch als Vorderseitenbus bekannt), Speichercontroller, Buscontroller, E/A-Controller usw.
-
Verarbeitungssysteme 902 stellen eine oder mehrere Allzweckverarbeitungsvorrichtungen, wie einen Mikroprozessor, eine zentralen Verarbeitungseinheit oder dergleichen, dar. Insbesondere kann/können das/die Verarbeitungssystem(e) 902 ein CISC-Mikroprozessor (CISC = Complex Instruction Set Computing), RISC-Mikroprozessor (RISC = Reduced Instruction Set Computing), VLIW-Mikroprozessor (VLIW = Very Long Instruction Word) oder ein Prozessor sein, der andere Befehlssätze implementiert oder Prozessoren, die eine Kombination von Befehlssätzen implementieren. Das/die Verarbeitungssystem(e) 902 kann/können auch ein oder mehrere Spezialverarbeitungsgeräte sein, wie eine anwendungsspezifische integrierte Schaltung (ASIC), ein Field Programmable Gate Array (FPGA), ein digitaler Signalprozessor (DSP), ein Netzwerkprozessor o. ä.
-
Das/die Verarbeitungssystem(e) 902 kann/können eine oder mehrere zentrale Verarbeitungseinheiten (CPUs) beinhalten, die in Verbindung mit dem Chipsatz 912 arbeiten. Das/die Verarbeitungssystem(e) 902 führt/führen arithmetische und logische Operationen durch, die für den Betrieb des exemplarischen Computersystems erforderlich sind.
-
Das NID 910 ist in der Lage, das exemplarische Computersystem über ein Netzwerk mit anderen Computern zu verbinden. Das Netzwerk kann ein Ethernet- oder Gigabyte-Ethernet-LAN, ein Faserring, ein Faserstern, drahtlos, optisch, Satellit, ein WAN, ein MAN oder eine andere Netzwerktechnologie, Topologie, ein anderes Protokoll oder eine Kombination davon sein.
-
Eingabesystem(e) 916 (oder Eingabevorrichtung(en)) ermöglichen einem Benutzer, Informationen in das Computersystem einzugeben und können eine Tastatur, eine Maus oder eine andere Cursorzeigevorrichtung, einen Stift, eine Spracheingabevorrichtung, eine Berührungseingabevorrichtung, ein Webcam-Gerät, ein Mikrofon usw. beinhalten. Ausgabesystem(e) 918 (oder Ausgabegerät(e)) stellen dem Benutzer des Computersystems Informationen bereit und können ein Display, einen Monitor, einen Lautsprecher oder dergleichen beinhalten.
-
Der Chipsatz 912 kann eine Schnittstelle zu verschiedenen Formen von computerlesbaren Speichermedien einschließlich eines Hauptspeichers 904 (z. B. eines Nur-Lesen-Speicher (ROM), eines Flash-Speichers, eines dynamischen Direktzugriffsspeichers (DRAM), wie etwa ein synchroner DRAM (SDRAM)), und eine Festplatte 913 bereitstellen. Das/die Verarbeitungssystem(e) 902 kann/können mit den verschiedenen Formaten computerlesbarer Speichermedien über den Chipsatz 912 und entsprechende Busse kommunizieren.
-
Eine Festplatte 913 ist eine Form eines nichtflüchtigen Speichers, der ein Betriebssystem (OS) 914 speichern kann. Das Betriebssystem 914 ist eine Software, die in das RAM kopiert und von dem oder den Verarbeitungssystemen 902 ausgeführt wird, um den Betrieb des exemplarischen Computersystems zu steuern, Computerhardware- und Softwareressourcen zu verwalten und gemeinsame Dienste für Computerprogramme bereitzustellen, die von dem/den Verarbeitungssystem(en) 902 ausgeführt werden. Ungeachtet der Implementierung beinhaltet das Betriebssystem 914 viele verschiedene „Komponenten“, die die verschiedenen Teile des exemplarischen Computersystems zusammenarbeiten lassen. Die Plattensteuerung 915 ist die Steuerschaltung, die es dem Verarbeitungssystem 902 ermöglicht, mit einer Festplatte 913 zu kommunizieren, und stellt eine Schnittstelle zwischen der Festplatte 913 und dem Bus bereit, der sie mit dem Rest des Systems verbindet.
-
Der Hauptspeicher 904 kann aus vielen verschiedenen Arten von Speicherkomponenten bestehen. Der Hauptspeicher 904 kann nichtflüchtigen Speicher (wie z. B. Nur-Lese-Speicher (ROM) 906, Flash-Speicher usw.) und flüchtigen Speicher (wie z. B. Direktzugriffsspeicher (RAM) 908) oder eine Kombination der beiden beinhalten. Der RAM 908 kann ein beliebiger Typ eines geeigneten Direktzugriffsspeichers sein, einschließlich der verschiedenen Arten von dynamischen Direktzugriffsspeichern (DRAM), wie z. B. SDRAM, die verschiedenen Arten von statischem RAM (SRAM). Der Hauptspeicher 904 (sowie das/die Verarbeitungssystem(e) 902) kann in dem exemplarischen Computersystem verteilt sein.
-
Der ROM 906 des Hauptspeichers 904 kann für das Speichern von Firmware verwendet werden, die einen die Grundroutinen enthaltenden Programmcode beinhaltet, die helfen, das exemplarische Computersystem zu starten und Informationen zwischen Elementen innerhalb des exemplarischen Computersystems zu übertragen. Der ROM des Hauptspeichers 904 kann auch andere Softwarekomponenten speichern, die für den Betrieb des exemplarischen Computersystems notwendig sind.
-
Der RAM 908 speichert Programme/Anweisungen 930 oder einen ausführbaren Code für ein oder mehrere Programme 934, die in Verarbeitungssystem(en) 902 geladen und ausgeführt werden können, um verschiedene Funktionen auszuführen. Die Programme/Anweisungen 930 sind computerlesbarer Programmcode, der in dem RAM 908 (oder einem anderen nichtflüchtigen computerlesbaren Medium des exemplarischen Computersystems) gespeichert werden kann, das von Verarbeitungssystem(en) 902 gelesen und ausgeführt werden kann, um verschiedene Handlungen, Aufgaben, Funktionen und Schritte, wie hierin beschrieben, auszuführen. Die hierin beschriebenen Verfahren und Techniken können in Programmieranweisungen 930 für die Ausführung durch das Verarbeitungssystem 902 erfasst werden, um das exemplarische Computersystem zu veranlassen, die beschriebenen Verfahren, Prozesse und Techniken auszuführen.
-
Hierin werden Techniken basierend auf maschinellem Lernen beschrieben, um die Leistung einer Computerplattform bei dem Ausführen einer Softwareanwendung vorherzusagen. Die beschriebenen Techniken ermöglichen die Vorhersage der Leistung einer Computerplattform, ohne dass tatsächlich eine Software auf der Computerplattform implementiert und ausgeführt wird. Die Vorhersagen können getätigt werden, bevor die Computerplattform in physischer Form verfügbar ist. Die beschriebenen Techniken ermöglichen die Vorhersage der Leistungsfähigkeit einer Computerplattform ohne Verwendung eines Simulators, der eine detaillierte Modellierung der Computerplattform benötigt. Die beschriebenen Techniken können abstrakte Informationen (wie z. B. spezifische Design-Parameter, wie Frequenz, Cache, Pipeline-Tiefe usw.) bezüglich der Computerplattform verwenden. Die beschriebenen Techniken können Vorhersagen liefern, die ausreichend genau sind, selbst wenn nicht alle Design-Parameter bekannt sind. Zusätzlich kann die Vorhersagegenauigkeit durch wiederholtes Anpassen des Vorhersagemodells systematisch verbessert werden.
-
In einer Ausführungsform wird ein computerimplementiertes Verfahren für das Auswählen einer Computerplattform bereitgestellt. Das Verfahren umfasst das Sammeln von Plattformmerkmaldaten für jede einer Vielzahl von existierenden Computerplattformen in einer bestimmten Klasse von Computerplattformen. Die Plattformmerkmaldaten für jede der Vielzahl von vorhandenen Computerplattformen umfassen eine Vielzahl von Design-Parametern und eine Leistungsmessung für die Computerplattform, um eine Benchmarking-Softwarekomponente abzuschließen. Das Verfahren umfasst ferner das Schulen eines mathematischen Modells unter Verwendung der gesammelten Plattformmerkmaldaten, um ein Vorhersagemodell für die Vorhersage einer vorhergesagten Leistungsmessung einer Computerplattform in der bestimmten Klasse von Computerplattformen zu entwickeln, wenn sie mit Entwurfsparametern versehen sind, und mit dem Vorhersagemodell die vorhergesagte Leistungsmessung einer neuen Computerplattform vorherzusagen, die nicht zum Testen verfügbar ist, sowie die Auswahl einer Computerplattform unter Verwendung der vorhergesagten Leistungsmessung.
-
Diese Aspekte und andere Ausführungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Das Schulen eines mathematischen Modells kann das Anwenden der gesammelten Plattformmerkmaldaten für eine Vielzahl von vorhandenen Computerplattformen als Eingaben und der Ausführungszeiten für die Vielzahl von vorhandenen Computerplattformen als Ausgaben für das Erlernen einer allgemeinen Regel, die Eingaben auf Ausgaben abbildet, das Testen der erlernten Regel und das Anpassen und erneute Testen der Regel, bis das Modell ein gewünschtes Genauigkeitsziel erreicht hat, umfassen. Das Testen der Regel kann das Vorhersagen einer Leistungsmessung für eine Testplattform unter Verwendung des Modells, das Ermitteln der Benchmark-Ausführungszeit der Testplattform unter Verwendung der Benchmarking-Softwarekomponente und das Ermitteln der Genauigkeit des Modells durch Vergleichen der vorhergesagten Testplattform-Leistungsmessung mit der Benchmark-Ausführungszeit umfassen. Die Vorhersage der vorhergesagten Leistungsmessung einer neuen Computerplattform kann das Anwenden von Design-Parametern für die neue Computerplattform als Eingaben für das Vorhersagemodell umfassen. Das Vorhersagen der vorhergesagten Leistungsmessung einer neuen Computerplattform kann das Neuschulen des Vorhersagemodells unter Verwendung einer Teilmenge der Design-Parameter, die für das Schulen des mathematischen Modells verwendet werden, und das Anwenden der Teilmenge der Design-Parameter für die neue Computerplattform auf das neugeschulte Vorhersagemodell umfassen. Die Design-Parameter können Design-Parameter umfassen, die üblicherweise auf einem Datenblatt eines Plattformanbieters zu finden sind. Die Design-Parameter können die Betriebsfrequenz, die Anzahl der Kerne, die Anzahl der Threads, die Anzahl der Caches, die Größe der Caches und die Größe des eingebetteten Speichers umfassen.
-
In einer anderen Ausführungsform wird ein System für das Auswählen einer Computerplattform bereitgestellt. Das System umfasst einen oder mehrere Prozessoren und nichtflüchtige computerlesbare Medien. Das nichtflüchtige computerlesbare Medium ist mit Programmieranweisungen codiert, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, bewirken, dass das System Plattformmerkmaldaten für jede aus einer Vielzahl von existierenden Computerplattformen in einer bestimmten Klasse von Computermodellen sammelt. Die Plattformmerkmaldaten für jede der Vielzahl von vorhandenen Computerplattformen umfassen eine Vielzahl von Design-Parametern und eine Leistungsmessung für die Computerplattform, wenn eine Benchmarking-Softwarekomponente ausgeführt wird. Das nichtflüchtige computerlesbare Medium ist ferner mit Programmieranweisungen codiert, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass das System ein mathematisches Modell unter Verwendung der gesammelten Plattformmerkmaldaten trainiert, um ein Vorhersagemodell für die Vorhersage einer vorhergesagten Leistungsmessung einer Computerplattform in der bestimmten Klasse von Computermodellen zu entwickeln, wenn sie mit Design-Parametern versehen sind, und mit dem Vorhersagemodell die vorhergesagte Leistungsmessung einer neuen Computerplattform vorherzusagen, die nicht zum Testen verfügbar ist.
-
Diese Aspekte und andere Ausführungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Die Anweisungen, die bewirken, dass das System ein mathematisches Modell schult, können Anweisungen umfassen, die bewirken, dass das System eine Regel für das Abbilden der Eingaben auf eine gewünschte Ausgabe lernt, indem die gesammelten Plattformmerkmaldaten für eine Vielzahl von vorhandenen Computerplattformen als Eingaben und die Ausführungszeiten für die Vielzahl von existierenden Computerplattformen als Ausgaben angewendet werden, um eine allgemeine Regel zu lernen, die Eingaben zu Ausgaben zuordnet, die erlernte Regel prüft und die Regel einstellt und erneut prüft, bis das Modell ein gewünschtes Genauigkeitsziel erreicht hat. Diese Anweisungen, die das System zu dem Testen der Regel veranlassen, können Anweisungen umfassen, die das System zu der Vorhersage einer Leistungsmessung für eine Testplattform unter Verwendung des Modells, dem Ermitteln der Benchmark-Ausführungszeit der Testplattform unter Verwendung der Benchmarking-Softwarekomponente und dem Ermitteln der Genauigkeit des Modells durch Vergleichen der vorhergesagten Testplattform-Leistungsmessung mit der Benchmark-Ausführungszeit veranlassen. Die Anweisungen, die das System zu der Vorhersage der vorhergesagten Leistungsmessung einer neuen Computerplattform veranlassen, können Anweisungen umfassen, die bewirken, dass das System Entwurfsparameter für die neue Berechnungsplattform als Eingaben für das Vorhersagemodell anwendet. Die Design-Parameter können Design-Parameter umfassen, die üblicherweise auf einem Datenblatt eines Plattformanbieters zu finden sind. Die Design-Parameter können die Betriebsfrequenz, die Anzahl der Kerne, die Anzahl der Threads, die Anzahl der Caches, die Größe der Caches und die Größe des eingebetteten Speichers umfassen. Die Computerplattform kann ein System auf einem Chip (SOC), eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU) oder einen digitalen Signalprozessor (DSP) umfassen.
-
In einer anderen Ausführungsform wird ein nichtflüchtiges computerlesbares Speichermedium bereitgestellt, das Programmieranweisungen für das Durchführen eines Verfahrens verkörpert. Das Verfahren umfasst das Sammeln von Plattformmerkmaldaten für jede einer Vielzahl von existierenden Computerplattformen in einer bestimmten Klasse von Computermodellen. Die Plattformmerkmaldaten für jede der Vielzahl von vorhandenen Computerplattformen umfassen eine Vielzahl von Design-Parametern und eine Leistungsmessung für die Computerplattform, wenn eine Benchmarking-Softwarekomponente ausgeführt wird. Das Verfahren umfasst ferner das Schulen eines mathematischen Modells unter Verwendung der gesammelten Plattformmerkmaldaten, um ein Vorhersagemodell für die Vorhersage einer vorhergesagten Leistungsmessung einer Computerplattform in der bestimmten Klasse von Computermodellen zu entwickeln, wenn sie mit Design-Parametern versehen sind, die üblicherweise auf einem Plattformanbieterdatenblatt zu finden sind, und mit dem Vorhersagemodell die vorhergesagte Leistungsmessung einer neuen Computerplattform vorherzusagen, die nicht zum Testen verfügbar ist.
-
Diese Aspekte und andere Ausführungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Das Schulen eines mathematischen Modells kann das Erlernen einer Regel für die Abbildung der Eingaben auf die gewünschten Ausgaben durch das Anwenden der gesammelten Plattformmerkmaldaten für eine Vielzahl von vorhandenen Computerplattformen als Eingaben und der Ausführungszeiten für die Vielzahl von vorhandenen Computerplattformen als Ausgaben für das Erlernen einer allgemeinen Regel für das Abbilden der Eingaben auf Ausgaben, das Testen der erlernten Regel und das Anpassen und erneute Testen der Regel, bis das Modell ein gewünschtes Genauigkeitsziel erreicht hat, umfassen. Das Testen der Regel kann das Vorhersagen einer Leistungsmessung für eine Testplattform unter Verwendung des Modells, das Ermitteln der Benchmark-Ausführungszeit der Testplattform unter Verwendung der Benchmarking-Softwarekomponente und das Ermitteln der Genauigkeit des Modells durch Vergleichen der vorhergesagten Testplattform-Leistungsmessung mit der Benchmark-Ausführungszeit umfassen. Die Vorhersage der vorhergesagten Leistungsmessung einer neuen Computerplattform kann das Anwenden von Design-Parametern für die neue Computerplattform als Eingaben für das Vorhersagemodell umfassen. Das Vorhersagen der Leistungsmessung einer neuen Computerplattform kann das Neuschulen des Vorhersagemodells unter Verwendung einer Teilmenge der Design-Parameter, die für das Schulen des mathematischen Modells verwendet werden, und das Anwenden der Teilmenge der Design-Parameter für die neue Computerplattform auf das neugeschulte Vorhersagemodell umfassen. Die Design-Parameter können die Betriebsfrequenz, die Anzahl der Kerne, die Anzahl der Threads, die Anzahl der Caches, die Größe der Caches und die Größe des eingebetteten Speichers umfassen.
-
Das Vorangehende umreißt Merkmale verschiedener Ausführungsformen, sodass der Fachmann auf dem Gebiet die Aspekte der vorliegenden Offenbarung besser verstehen kann. Der Fachmann auf dem Gebiet sollte erkennen, dass er die vorliegende Offenbarung ohne weiteres als Grundlage für das Entwerfen oder Modifizieren anderer Verfahren und Strukturen für das Ausführen der gleichen Zwecke und/oder für das Erreichen der gleichen Vorteile der hierin vorgestellten Ausführungsformen verwenden kann. Der Fachmann auf dem Gebiet sollte auch erkennen, dass solche äquivalenten Konstruktionen nicht von dem Geist und Umfang der vorliegenden Offenbarung abweichen, und dass sie hierin verschiedene Änderungen, Ersetzungen und Abänderungen vornehmen können, ohne von dem Geist und Umfang der vorliegenden Offenbarung abzuweichen.