DE102022209700A1 - Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze - Google Patents

Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze Download PDF

Info

Publication number
DE102022209700A1
DE102022209700A1 DE102022209700.9A DE102022209700A DE102022209700A1 DE 102022209700 A1 DE102022209700 A1 DE 102022209700A1 DE 102022209700 A DE102022209700 A DE 102022209700A DE 102022209700 A1 DE102022209700 A1 DE 102022209700A1
Authority
DE
Germany
Prior art keywords
applications
application
resources
environment
execution
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
DE102022209700.9A
Other languages
English (en)
Inventor
Christoph Burger-Scheidlin
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022209700.9A priority Critical patent/DE102022209700A1/de
Publication of DE102022209700A1 publication Critical patent/DE102022209700A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Landscapes

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

Abstract

Bei einem Gerät (4) mit einer Umgebung (10) mit mindestens zwei voneinander verschiedene Ressourcen (16a-d) zur Ausführung von Anwendungen (8a,b), wobei mindestens zwei der Anwendungen (8a,b) solche sind, die jeweils wenigstens ein neuronales Netz (18a,b) implementieren, ist die Umgebung (10) anhand wenigstens eines Steuerprogrammes (6) dazu eingerichtet, wenigstens diese beiden der Anwendungen (8a,b) ausschließlich einer jeweiligen der Ressourcen (16a-d) für wenigstens eine vollständige Ausführung der Anwendungen (8a,b) zuzuordnen.
Eine Geräteanordnung (2) enthält das Gerät (4) und wenigstens zwei der Anwendungen (8a,b), die jeweils wenigstens ein neuronales Netz (18a,b) implementieren.
Bei einem Verfahren zum Betreiben des Gerätes (4) oder der Geräteanordnung (2) werden wenigstens die beiden der Anwendungen (8a,b), die jeweils wenigstens ein neuronales Netz (18a,b) implementieren, ausschließlich einer jeweiligen der Ressourcen (16a-d) für wenigstens eine vollständige Ausführung der Anwendungen (8a,b) zugeordnet.

Description

  • Stand der Technik
  • Aus der EP 3 757 901 A1 sind Verfahren und Systeme bekannt, die ein neuronales Netzwerksystem umfassen, das einen neuronalen Netzwerkbeschleuniger enthält. Der neuronale Netzwerkbeschleuniger umfasst mehrere Verarbeitungsmaschinen, die miteinander gekoppelt sind, um arithmetische Operationen durchzuführen, um eine Inferenz zu unterstützen, die unter Verwendung des tiefen neuronalen Netzwerksystems durchgeführt wird. Der neuronale Netzwerkbeschleuniger enthält auch eine zeitplanbewusste Tensordatenverteilungsschaltung oder -software, die konfiguriert ist, um Tensordaten in einer Ladephase in die mehreren Verarbeitungsmaschinen zu laden, in einer Extraktionsphase Ausgabedaten aus den mehreren Verarbeitungsmaschinen zu extrahieren und die extrahierte Ausgabe neu zu organisieren, und die reorganisierten extrahierten Ausgangsdaten in einem Speicher zu speichern.
  • Offenbarung der Erfindung
  • Gegenstand der Erfindung ist ein Gerät gemäß Patentanspruch 1. Bevorzugte oder vorteilhafte Ausführungsformen der Erfindung sowie anderer Erfindungskategorien ergeben sich aus den weiteren Ansprüchen, der nachfolgenden Beschreibung sowie den beigefügten Figuren.
  • Das Gerät enthält eine Umgebung zur Ausführung von Anwendungen. Eine derartige Umgebung wird auch Laufzeitumgebung oder „(App) Execution Environment“ genannt. In dieser Umgebung können Anwendungen, insbesondere sogenannte „Apps“, ausgeführt werden. Die Umgebung wird durch eine Mischung aus Hardware- und Software-Komponenten gebildet. Das Gerät ist insbesondere eine entsprechend mit einer Umgebung eingerichtete VideoKamera. Die Laufzeitumgebung für die Ausführung von Anwendungen enthält mehrere Komponenten. Eine solche Komponente ist eine Steuerungskomponente (Steuerprogramm) zur Zuordnung der Ressourcen. Eine andere ist optional die Verwaltungskomponente (Verwaltungsprogramm) für Konfigurations- und Laufzeitdaten, siehe weiter unten.
  • Die Umgebung enthält mindestens zwei, insbesondere mehrere, voneinander verschiedene Ressourcen. Jede der Ressourcen dient zur Ausführung der Anwendungen. Die mindestens zwei Ressourcen sind voneinander verschieden. Eine Recheneinheit stellt z.B. eine der Ressource dar, da eine Ausführung von Anwendungen auf der Recheneinheit möglich ist.
  • Die Erfindung geht davon aus bzw. setzt voraus, dass mindestens zwei Anwendungen wie folgt vorhanden sind. Jede der Anwendungen implementiert wenigstens ein neuronales Netz. Mit anderen Worten handelt es sich bei den Anwendungen um solche, welche auf der Basis neuronaler Netze arbeiten. Betrachtet wird vorliegend insbesondere die Inferenz-Ausführung eines neuronalen Netzes. Inferenz eines neuronalen Netzwerks bedeutet dessen Arbeitsbetrieb, zum Beispiel der Betrieb eines Netzwerks in Vorwärtsrichtung. Diese Inferenz steht damit im Gegensatz und meint nicht einen Lernbetrieb des neuronalen Netzes, bei welchen dieses beispielsweise in Rückwärtsrichtung auf Basis von Lerndaten betrieben wird.
  • Gemäß der Erfindung ist wenigstens ein Steuerprogramm vorhanden. Die Umgebung ist anhand wenigstens eines dieser Steuerprogramme dazu eingerichtet, wenigstens zwei der Anwendungen (die die neuronalen Netze implementieren) ausschließlich einer der mindestens zwei Ressourcen zuzuordnen. Insbesondere ist das Steuerprogramm entsprechend eingerichtet. Das Steuerprogramm wird auch „Neural Network Acceleration Assignment Manager“ genannt. Diese Zuordnung gilt bzw. bleibt bestehen für wenigstens eine vollständige Ausführung der jeweiligen Anwendung, die wenigstens zum Teil auf der Ressource ausgeführt wird. Mit anderen Worten ist eine jeweilige Anwendung für ihre vollständige Ausführung insbesondere einer bestimmten der Ressourcen ausschließlich zugeordnet. Es ist aber auch denkbar, dass für eine Anwendung zwei Ressourcen verwendet werden. „Vollständige Ausführung“ meint dabei einen irgendwie gearteten Ablauf der Anwendung bis zu einem planmäßigen Endergebnis, z.B. die erfolgreiche Erkennung einer Person / eines Nummernschildes in einem Bild oder die Feststellung, dass keine Person / kein Nummernschild erkennbar ist.
  • Die Recheneinheit ist insbesondere eine CPU (Central Processing Unit). Ressourcen sind insbesondere eine GPU (Graphics Processing Unit), ein DSP (Digital Signal Processor) oder eine TPU (Tensor Processing Unit). Eine TPU ist ein spezialisiertes Gerät, welches die Abarbeitung von neuronalen Netzwerken im Inferenzbetrieb beschleunigt.
  • Keine andere Anwendung nutzt also die entsprechende Ressource, während die eine Anwendung auf / mit dieser ausgeführt wird, bis die Anwendung vollständig ausgeführt ist.
  • Mit anderen Worten werden die beiden Anwendungen jeweils vollständig wenigstens einmal auf verschiedenen Ressourcen und damit diesbezüglich getrennt voneinander ausgeführt, ohne miteinander in Konflikt um die Ressourcen zu geraten.
  • Insbesondere erfolgt die Ausführung der beiden Anwendungen parallel auf den Ressourcen, das heißt dass diese in zeitlicher Hinsicht sequenziell nacheinander, oder zeitüberlappend oder gleichzeitig ausgeführt werden.
  • Der Ausdruck „die Umgebung ist dazu eingerichtet ...“ ist so zu verstehen, dass dies eine Eigenschaft der Umgebung selbst sein kann; keine der Anwendungen braucht hierzu Bestandteil des Gerätes zu sein, es wird lediglich ein entsprechend vorhandenes Steuerprogramm und entsprechende Anwendungen vorausgesetzt. Das Gerät ist dann alleine aufgrund seiner Umgebung entsprechend erfindungsgemäß eingerichtet.
  • Zumindest wird also von dem Vorhandensein entsprechender Anwendungen / Programme ausgegangen. Dabei werden diese als bekannt zumindest hinsichtlich für die vorliegende Erfindung relevanter Eigenschaften vorausgesetzt. Insofern werden also „bestimmungsgemäße“ Anwendungen / Programme betrachtet. Insbesondere sind jedoch Anwendungen, insbesondere ist das Steuerprogramm, Bestandteil einer Geräteanordnung, die das Gerät und das / die Anwendungen / Programme enthält. Das Steuerprogramm ist dann auf dem Gerät vorhanden und insofern bekannt. Insbesondere gilt dies auch für die mindestens zwei Anwendungen. Solche Geräteanordnungen sind weiter unten genannt. Dies gilt auch jeweils für die nachfolgenden Aspekte der Erfindung.
  • Das Gerät weist den Vorteil auf, dass sich die Anwendungen auf den ihnen ausschließlich zugeordneten Ressourcen nicht gegenseitig in ihrer Ausführung behindern und somit eine insgesamt effektivere Ausführung der Anwendungen stattfindet.
  • Gemäß eines Aspekts der Erfindung ist wenigstens eine der Ressourcen dazu eingerichtet, eine Abarbeitung einer der Anwendungen gegenüber einer Recheneinheit (insbesondere eine CPU) beschleunigt auszuführen. Mit anderen Worten sind die Ressourcen auf die Ausführung zumindest bestimmter neuronaler Netze optimiert bzw. weisen Eigenschaften auf, die zu einer optimierten Ausführung neuronale Netze führen. Auch dies führt zu einer insgesamt beschleunigten Ausführung der Anwendungen. Auch hier wird von einer insofern bekannten Anwendung ausgegangen.
  • Gemäß eines Aspekts der Erfindung ist die Umgebung, insbesondere das Steuerprogramm, dazu eingerichtet, wenigstens eine der Anwendungen ausschließlich der Ressource für wenigstens zwei aufeinanderfolgende vollständige Ausführungen der Anwendung zuzuordnen. Insbesondere wird sie für mehrere aufeinanderfolgende Ausführungen der Ressourcen ausschließlich zugeordnet. Dies führt zu einer besonders schnellen sequenziellen mehrmaligen Ausführung der Anwendung auf der Ressource.
  • Gemäß eines Aspekts der Erfindung ist die Umgebung, insbesondere das Steuerprogramm dazu eingerichtet, die Anwendung aufeinanderfolgend nach Art einer burst-execution auszuführen. Burst-executions (Burst-Ausführungen) sind eine Abfolge von Ausführungen des gleichen vorbereiteten Modells, die in schneller Folge auftreten, wie beispielsweise diejenigen, die an Frames einer Kameraaufnahme arbeiten. Bekanntermaßen kann nur eine Anwendung als Burst ausgeführt werden. Bei einer derartigen burst-execution wird insbesondere die selbe Kompilierung der Anwendung wiederholt ausgeführt, die Ressource bleibt insbesondere in einem Hochleistungszustand für die Dauer des burst. Insbesondere können Zwischenergebnisse aus der Ausführung der Anwendung innerhalb der Ressourcen verbleiben und für die nächste Ausführung weiter genutzt werden. So kann eine besonders schnelle Ausführung der Anwendung erfolgen. Eine solche „burst-execution“ ist sinngemäß z.B. bekannt aus: „Neural Networks API, Android NDK, Android Developers“, Abschnitt „Burst executions“, Internetseite, https://developer.android.com/ndk/guides/neuralnetworks, Download am 05.05.2022.
  • Für einen weiteren Aspekt der Erfindung wird davon ausgegangen, dass wenigstens einer der Anwendungen Metadaten zugeordnet sind. Gemäß eines Aspekts der Erfindung ist dann die Umgebung, insbesondere das Steuerprogramm, dazu eingerichtet, die Zuordnung einer Anwendung zu einer bestimmten der Ressourcen in Abhängigkeit von den Metadaten durchzuführen. Derartige Metadaten charakterisieren die Anwendung, z.B. deren Eigenschaft, durch welche Ressource sie gegenüber einer CPU bei ihrer Ausführung besonders beschleunigt werden können. Entsprechende Metadaten können so zu einer besonders günstigen Zuordnung von Anwendungen zu Ressourcen führen.
  • Gemäß eines Aspekts der Erfindung sind wenigstens einer der Anwendungen Benutzerdaten zugeordnet. Die Umgebung, insbesondere das Steuerprogramm, ist dazu eingerichtet, die Zuordnung einer Anwendung zu einer bestimmten der Ressourcen in Abhängigkeit von den Benutzerdaten durchzuführen. Benutzerdaten sind zum Beispiel die explizite Zuordnung einer bestimmten Ressource zu einer bestimmten Anwendung. Es geht bei den Benutzerdaten insbesondere um kodifizierte Nutzeranforderungen, z.B. welche Anwendung mit Priorität auszuführen ist und ggfs. welche Frequenz (bei Videokameras frames per second) benötigt wird.
  • Die Frequenz der Ausführung findet sich zudem in den Metadaten der Anwendung. So kann z.B. eine Blitzlichterkennungsanwendung eine höhere Ausführungsfrequenz benötigen als eine App zur Nummernschilderkennung an einer Schranke.
  • Gemäß eines Aspekts der Erfindung sind - falls solche Daten jeweils vorhanden sind - die Metadaten und/oder die Benutzerdaten in der Anwendung enthalten. So stehen diese mit der Anwendung zusammen der Umgebung bzw. dem Steuerprogramm stets zur Verfügung.
  • Gemäß eines Aspekts der Erfindung ist wenigstens einem, insbesondere mehreren, insbesondere allen der Anwendungen, die insbesondere aktuell auf dem Gerät vorhanden sind bzw. ausgeführt werden, wenigstens eine Laufzeitinformation zugeordnet. Die Umgebung, insbesondere das Steuerprogramm, ist dazu eingerichtet, die Zuordnung einer Anwendung zu einer bestimmten der Ressourcen in Abhängigkeit von den Laufzeitinformationen durchzuführen. Derartige Laufzeitinformationen sind beispielsweise die benötigte Dauer einer Ausführung einer bestimmten Anwendung oder eines Teils der Anwendung, eine ermittelte oder geschätzte Zeitspanne bis zu einer nächsten (potentiellen) Ausführung der Anwendung, eine aktuelle Systemlast im Gerät bzw. der Umgebung, die Anzahl und / oder Reihenfolge auszuführender Anwendungen in der Umgebung usw. Dies erlaubt eine Anpassung der Zuordnung von Anwendungen an die aktuelle Situation im Gerät bzw. in der Umgebung.
  • Gemäß eines Aspekts der Erfindung enthält das Gerät ein Verwaltungsprogramm zur Verwaltung von Konfigurationsdaten der Umgebung und / oder - falls vorhanden - der Laufzeitinformationen. Ein solches Verwaltungsprogramm ist insbesondere Teil eines „App Execution Environment“. Auch hier geht die Erfindung wieder entweder von einem entsprechenden Verwaltungsprogramm aus oder ein entsprechendes Verwaltungsprogramm ist zusammen mit dem Gerät Teil der Geräteanordnung, siehe unten. Ein entsprechendes Verwaltungsprogramm dient dazu, einen möglichst effektiven bzw. günstigen Betrieb des Geräts hinsichtlich seiner Umgebung und der auszuführenden Anwendungen zu erreichen. Mit anderen Worten wird hier z.B. festgelegt, welche Anwendung wann auf welcher Hardware (Recheneinheit/ Ressourcen) ausgeführt wird.
  • In einer ersten Variante dieses Aspekts ist das Steuerprogramm als Teil des Verwaltungsprogramms ausgebildet. Das Verwaltungsprogramm selbst wird daher im Sinne der Erfindung ertüchtigt, die genannte Zuordnung der Anwendungen auf die Ressourcen durchzuführen.
  • In einem alternativen Variante dieses Aspekts ist das Steuerprogramm vom Verwaltungsprogramm verschieden und ist mit diesem zur wenigstens einseitigen, insbesondere gegenseitigen, Kommunikation eingerichtet. Verwaltungsprogramm und Steuerprogramm können so getrennt voneinander entwickelt und optimiert werden, wirken jedoch aufgrund der Kommunikation entsprechend zusammen, um das Gerät insgesamt möglichst günstig im Hinblick auf die Anwendungen zu betreiben.
  • Das Gerät bringt die Fähigkeit mit, bestimmte Ressourcen zu verwalten bzw. zu vergeben. Dies wird durch das Steuerprogramm geleistet. Welche Ressourcen dann von der Anwendung benötigt werden bzw. welche Ressourcen idealerweise verwendet werden sollten - dies steuert das Verwaltungsprogramm - kann Teil einer Anwendung sein. Vorzugsweise ist es in diesem Fall eine zusätzliche Komponente einer Anwendung. Das Verwaltungsprogramm kann daher insbesondere eine eigenständige „App“ sein, die - entsprechend der Anwendungen - als Zusatzprogramm auf dem Gerät installiert wird.
  • Ein weiterer Gegenstand der Erfindung ist, wie oben erwähnt, eine Geräteanordnung gemäß Patentanspruch 10. Diese enthält das Gerät mit dem Steuerprogramm.
  • Die Geräteanordnung enthält auch die wenigstens zwei der Anwendungen, wie sie oben erläutert wurden, also solche, die jeweils wenigstens ein neuronales Netz implementieren. Somit ist das Gerät vollständig betriebsfertig mit Steuerprogramm und den mindestens zwei Anwendungen ausgerüstet, um wie oben erläutert besonders effektiv in Hinblick auf die Ressourcenverteilung für neuronale Netze arbeiten zu können. Die Geräteanordnung und zumindest ein Teil deren möglicher Ausführungsformen sowie die jeweiligen Vorteile wurden sinngemäß bereits im Zusammenhang mit dem erfindungsgemäßen Gerät erläutert.
  • Ein weiterer Gegenstand der Erfindung ist, ein Verfahren gemäß Patentanspruch 11 zum Betreiben des oben erläuterten Gerätes oder der oben erläuterten Geräteanordnung. Wie oben erläutert wird für das Gerät vorausgesetzt, dass entsprechende Anwendungen vorhanden sind, die die neuronalen Netze implementieren. Bei dem Verfahren werden wenigstens zwei der Anwendungen ausschließlich einer der mindestens zwei voneinander verschiedenen Ressourcen für wenigstens eine vollständige Ausführung der Anwendungen zugeordnet. Das Verfahren und zumindest ein Teil dessen möglicher Ausführungsformen sowie die jeweiligen Vorteile wurden sinngemäß bereits im Zusammenhang mit dem genannten Gerät/ der Geräteanordnung erläutert.
  • Die Erfindung beruht auf folgenden Erkenntnissen, Beobachtungen bzw. Überlegungen und weist noch die nachfolgenden bevorzugten Ausführungsformen auf. Diese Ausführungsformen werden dabei teils vereinfachend auch „die Erfindung“ genannt. Die Ausführungsformen können hierbei auch Teile oder Kombinationen der oben genannten Ausführungsformen enthalten oder diesen entsprechen und/oder gegebenenfalls auch bisher nicht erwähnte Ausführungsformen einschließen.
  • Die Erfindung beruht auf der Erkenntnis, dass die Ausführung / Prozessierung von neuronalen Netzwerken im Inferenzbetrieb (die Ausführung entsprechender Anwendungen, die neuronale Netze implementieren) auf verschiedenen Komponenten, wie zum Beispiel einer CPU, einer GPU, einem DSP oder einer TPU, stattfinden kann. Die Partitionierung eines einzelnen neuronalen Netzwerks auf mehrere Teile kann erfolgen, so dass diese Teile auf verschiedenen dieser Komponenten ausgeführt werden können (GPU, DSP, TPU, die CPU ist typischerweise nur als Fallback benutzt). Dies ist zum Beispiel bekannt aus der o.g. Quelle „Neural Networks API, Android NDK, Android Developers“, Abschnitt „Model partitioning“. In der „burst-execution“ werden Möglichkeiten einer bestimmten Komponente / Ressource, auch „Beschleuniger“ genannt, wieder verwendet. Die Erfindung beruht auf der Erkenntnis, dass bekannte Konzepte, insbesondere in Bezug auf das Betriebssystem Android, auf die Ausführung einer einzelnen Anwendung (App, Application) im Vordergrund fokussieren, welche beschleunigte Bearbeitung von Inferenz benötigt.
  • Die Erfindung beruht auf der Erkenntnis, dass das Aufrüsten (Set-Up, betriebsfertig-machen der Komponente für eine bestimmte Anwendung) und Abbauen (Tear-Down, Abschließen der Bearbeitung einer Anwendung - auch deren teilweiser Bearbeitung - auf einer Komponente, d.h. Freimachen der Komponente für eine andere Anwendung) von Arbeitsvorgängen an Komponenten eine zeitraubende Aufgabe sein kann. Insbesondere für wiederkehrende Arbeitsbelastungen kann dies problematisch werden, wenn ein signifikanter Anteil der Rechenleistung eines Systems durch Set-Up und Tear-Down der Ressourcen verbraucht wird.
  • Die Erfindung beruht auf folgender Grundidee:
  • Ein Gerät enthält mindestens zwei Ressourcen (beispielsweise Beschleuniger für die Inferenz neuronaler Netzwerke). Enthalten auf dem Gerät ist auch eine Umgebung zur Ausführung von Anwendungen (Apps). Innerhalb der Umgebung sind die Anwendungen (Aufgaben, Tasks) bekannt, welche von dem Gerät bzw. System abzuarbeiten sind. Das System bzw. das Gerät bzw. die Umgebung kann dann Beschleuniger (Ressourcen) für spezifische neuronale Netzwerke (Anwendungen) ausschließlich reservieren, insbesondere für die wiederholte Ausführung wiederverwenden, um die Set-up- und der Tear-Down-Zeiten zu reduzieren.
  • Gemäß der Erfindung ist ein Gerät in der Lage, Aftermarket-components (Apps einer dritten Partei, Third Party) auszuführen. Diese Apps / Anwendungen bestehen im Prinzip aus ausführbarem Code, welcher neuronale Netzwerke benutzt, um AI bezogene Aufgaben auszuführen. Zum Beispiel kann eine derart ausgerüstete Videokamera als Gerät mit entsprechenden Anwendungen erweitert werden, welche neuronale Netze im Inferenz-Betrieb benutzen, um Objektklassifikationen durchzuführen. Das Gerät kann hierbei mit einer Mehrzahl, insbesondere mindestens zwei, solcher Anwendungen ausausgerüstet bzw. erweitert werden. Beispielsweise könnte eine Videokamera als Gerät mit einer Anwendung für Personenerkennung und einer separaten Anwendung für Nummernschilderkennung von Fahrzeugen ausgerüstet werden.
  • Das Gerät enthält eine Ausführungs-Umgebung, in welcher die Anwendungen ausgeführt werden. Diese Ausführungsumgebung stellt den Zugang zu Rechenressourcen (Recheneinheit / Ressourcen) des Gerätes zur Verfügung, wobei die Ressourcen auch Komponenten einschließen, welche neuronale Netzwerke zu einem gewissen Grad Inferenz-beschleunigen können. Diese Ressourcen in Form von Beschleunigern sind heterogen derart, dass sie nicht jedes Inferenzieren gleich beschleunigen für alle möglichen neuronalen Netzwerke. Beispielsweise ist eine GPU dazu vorgesehen, die Darstellung grafischer Elemente auf einem Display zu beschleunigen. Während sie daher bestimmte Typen von Operationen beschleunigen kann, welche relevant für neuronale Netzwerk Inferenz sind (zum Beispiel Fließkomma-Multiplikation), ist sie ein nicht perfekter Beschleuniger. Das Aufrüsten / Set-up eines Beschleunigers, um eine spezielle Aufgabe (eine spezielle Anwendung) auszuführen, kann ein zeitraubender Prozess sein, zum Beispiel indem das zu beschleunigende neuronale Netzwerk in den Beschleuniger (Ressource) geladen werden muss.
  • Wenn mehrere Anwendungen um mehrere Ressourcen / Beschleuniger in Wettbewerb treten, kann es von Vorteil sein, einen nicht perfekten Beschleuniger für eine der Anwendungen zu nutzen. Wenn man beispielsweise zwei Anwendungen bedenkt, gilt folgendes: Das prozessieren der Anwendungen sequenziell benötigt das Set-up aller Beschleuniger für die erste Anwendung, Ausführen der Prozessierung der ersten Anwendung, das Set-up der Beschleuniger für die zweite Anwendung und das Durchführen der Bearbeitung der zweiten Anwendung. Dies erfordert das mehrmalige Set-up der verfügbaren Beschleuniger. Dies ist insbesondere problematisch für wiederkehrende Arbeiten, da der zusätzliche Aufwand (Set-up, Tear-Down) wiederkehrend auftritt.
  • Dagegen kann - gemäß Grundidee der Erfindung - die (App-Ausführungs- )Umgebung einen ersten Beschleuniger (Ressource) für die erste Anwendung und einen zweiten Beschleuniger (Ressource) für die zweite Anwendung benutzen. Somit muss die erste Ressource nur einmal aufgesetzt (Set-Up) und die zweite Ressource nur einmal aufgesetzt (Set-Up) werden. Für schnell wiederkehrende Aufgaben und eine angemessen niedrige Anzahl von Anwendungen können die Beschleuniger sogar Informationen von vorherigen Ausführungen wieder verwenden, im Sinne einer burst-execution.
  • Die Grundidee der Erfindung ist es, eben jene Set-up / Tear-down Aufwände zu sparen. Dabei ist das Zuweisen bzw. pinning von einzelnen Anwendungen auf einzelne Ressourcen nur ein Aspekt.
  • Der Kern der Erfindung ist insbesondere nicht das eigentliche Bursting oder Pinning, der Kern betrifft vielmehr die Auswahl in einer komplexen, nicht vorhersagbaren Umgebung, da jedes Gerät (z.B. jede Kamera) mit einer unterschiedlichen Auswahl von Anwendungen bestückt werden kann und die Prioritäten der Anwendungen auf jedem Gerät anders sein können.
  • Das Zuweisen neuronaler Netzwerkmodelle (von Anwendungen an Ressourcen) kann auch Metadaten über die Anwendung nutzen, oder Informationen über das neuronale Netzwerkmodell selbst und vom Benutzer bereitgestellte Benutzerdaten, zum Beispiel Konfigurationsdaten. Vorzugsweise sind zumindest Teile der Metadaten als Teile der Anwendung (App, Applikation) bereitgestellt. Beispielsweise vertraut eine Applikation darauf, dass Ergebnisse schnell zur Verfügung gestellt werden, wobei eine Weiterbearbeitung der Ergebnisse benötigt wird. Wohingegen eine andere Applikation eine höhere Latenz tolerieren kann, da diese die Ergebnisse nur abspeichert und diese Applikation kann daher einen weniger effektiven Beschleuniger tolerieren.
  • Es gibt grundsätzlich zwei unterschiedliche Arten von Metadaten. Es gibt Daten über das Ausführungsverhalten der in der Anwendung enthaltenden Netze. Diese sind in der Tat vorzugsweise in der App. Des Weiteren gibt es Daten über die gewünschte Ausführung der Anwendung, bzw. deren Priorität. Derartige Metadaten sind dann üblicherweise nicht Teil der Anwendung.
  • Alternativ kann zum Beispiel ein bestimmtes Modell eines neuronalen Netzes nicht geeignet sein für die Beschleunigung auf einem speziellen Beschleuniger und so kann dieser Beschleuniger (Ressource) von der Zuweisung an diese Anwendung ausgeschlossen werden. Auch kann ein Nutzer die Wichtigkeit einer Beschleunigung manuell priorisieren, zum Beispiel durch „Pinnen“ einer bestimmten Applikation an einen bestimmten Beschleuniger (feste Zuweisung). Schließlich kann ein Nutzer die Frequenz einer wiederkehrenden Aufgabe einstellen, und so mehr Zeit erlauben, um die vollständige Ausführung zu ermöglichen. Das Ziel ist es jedoch, dass der Nutzer eben dieses Pinning nicht manuell vornehmen muss.
  • Weiterhin kann die Zuweisung von Beschleunigern auch andere Laufzeitinformationen berücksichtigen. Eine bedeutende Laufzeitinformation ist die Information über vorhergehende Ausführungen der Anwendungen. Für wiederkehrende Ausführungen kann diese Information genutzt werden, um die Benutzung der Beschleuniger abzuschätzen und zu bestimmen, ob ein bestimmter Beschleuniger in ausreichender Zeit zurückgesetzt werden kann, um die wichtigste App zu beschleunigen. Ein anderes Beispiel von Laufzeitinformation ist die Frequenz von Ausführungswiederholungen. Zum Beispiel im Fall der Bearbeitung eines Netzwerk-Videostreams kann die Wiederholung von Aufgaben von der eingehenden Bildrate (Framerate) abhängen.
  • Um das Beispiel von oben erneut aufzugreifen: Mit zwei Applikationen auf einer Videokamera konkurrieren die beiden Applikationen, Personenerkennung und Nummernschilderkennung, um Ressourcen. Nun sei ein System bzw. Gerät angenommen, welches zwei Ressourcen in Form einer GPU und eines DSP für die Beschleunigung aufweist. Für die Analyse potenziell schnell fahrender Autos benötigt die Nummernschilderkennung eine sehr hohe Bildrate (diese Information kann Teil der Applikations-Metadaten oder einer Benutzerkonfiguration sein). Eine Maximierung der Leistungsfähigkeit wäre möglich durch Benutzung aller verfügbaren Beschleunigungsressourcen für diese Anwendung, doch dies hungert die anderen Anwendungen aus, da die Ausführung auf der ansonsten noch vorhandenen CPU besonders langsam ist. Gemäß der Erfindung wählt daher die Umgebung bzw. ein Steuerprogramm, also das System, das neuronale Netzwerk der Nummernschilderkennung zur Beschleunigung auf dem DSP aus und benutzt die GPU für die Applikation der Personenerkennung (deren neuronales Netzwerk). Sollte die Beschleunigung der GPU für die Aufgabe nicht ausreichen, kann ein Benutzer wählen (Benutzerdaten), eine Verlangsamung der Nummernschilderkennung zu akzeptieren oder die benötigte Bearbeitungsfrequenz der Personen-Erkennungs-Applikation absenken, da sich Personen langsamer bewegen.
  • In einer ersten Alternative („App-Komponente“) gilt: Die Ausführungslogik (Steuerprogramm), die die Zuordnung der Ressourcen bestimmt, kann als Teil derjenigen Applikation (insbesondere das Verwaltungsprogramm, die Applikation ist kein Verwaltungsprogramm als solches) bereitgestellt werden, welche die Laufzeit und Konfigurationsinformationen bereitstellt, durch die Applikations-Ausführungs-Umgebung. Dies hat den Vorteil, dass ein entsprechendes System retrofitted werden kann, wenn auch vielleicht nicht ganz perfekt, auf einem existierenden System.
  • In einer alternativen Variante („Management Komponenten“) ist das Management der Ressourcen/Beschleuniger (Zuweisung an die Anwendungen) Teil einer separaten Management Komponente (Steuerprogramm, vom Verwaltungsprogramm verschieden). Dieses ist nur lose mit der Applikations-Ausführungs-Umgebung (Verwaltungsprogramm) gekoppelt. Das Verwaltungsprogramm fordert dann eine Zuordnung eines bestimmten Beschleunigers zu einem bestimmten Zweck von dieser Management Komponente (Steuerprogramm) an.
  • Die Erfindung zeichnet sich insbesondere durch folgendes aus:
    • • Das Steuerprogramm ist dazu eingerichtet, eine wiederkehrende Ausführung einer Anwendung zu planen bzw. zu steuern (sogenanntes „Scheduling“) und eine Entscheidung zu treffen, welche der Ressourcen für die Anwendung ausgewählt ist, wobei die Entscheidung auf der Zeit beruht, welche verbleibt, bis die nächste Ausführung stattfinden muss / sollte.
    • • Zum einen nutzt das Scheduling Informationen aus mindestens zwei unterschiedlichen Quellen, dem Hersteller der App und dem Nutzer des Gerätes. Zum anderen nutzt das Scheduling die Informationen über wiederkehrende Ausführung, um eine intelligente Verteilung vorzunehmen. Pinning ist hierbei ein Mechanismus, um die wiederkehrende Ausführung effizienter zu gestalten. Ggfs. kann dies auch durch die Reihenfolge passieren. Ist Pinning z.B. nicht effizient, da genug Zeit verbleibt, kann eine Ausführung |A B| |B A| |A B| effizienter gegenüber |A B| |A B| |A B| sein, da die „Rüstzeiten“ der Beschleuniger minimiert werden
    • • Das Steuerprogramm ist dazu eingerichtet, eine Anwendung, die mit hoher Priorität auszuführen ist, an eine bestimmte Ressource fest zu binden (sogenanntes „Pinning“), in dem eine Bestimmung / Ermittlung der anderen wiederkehrenden auszuführenden Anwendungen erfolgt, die im System (Gerät/ Umgebung) präsent sind, und eine Konfiguration durch einen Nutzer zu berücksichtigen, welche die Priorität der auszuführenden Aufgaben (Anwendungen) anzeigt.
  • Weitere Merkmale, Wirkungen und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung sowie der beigefügten Figuren. Dabei zeigen, jeweils in einer schematischen Prinzipskizze:
    • 1 ein erfindungsgemäßes Gerät mit zwei Anwendungen, bei welchem das Steuerprogramm als Teil des Verwaltungsprogramms ausgebildet ist.
  • 1 zeigt eine Geräteanordnung 2. Diese enthält ein Gerät 4, hier eine Videokamera, sowie ein Steuerprogramm 6 und zwei Anwendungen 8a,b, hier sogenannte „Apps“. Die Anwendung 8a dient zur Erkennung von Personen, die Anwendung 8b zur Erkennung von Nummernschildern, jeweils in von dem Gerät 4, also der Kamera aufgenommenen Bildern, was hier nicht näher erläutert wird Das Gerät 4 enthält eine Umgebung 10 zur Ausführung von Anwendungen 8a,b. Weitere, nicht näher erläuterte Anwendungen 8a,b sind ebenfalls zur Ausführung in der Umgebung 10 vorgesehen. Ein Speicher 12 dient zum Halten der Anwendungen 8a,b. Die Anwendungen 8a,b sind als „Explosionszeichnung“ von im Speicher 12 gespeicherten Anwendungen 8a,b zu verstehen.
  • Die Umgebung 10 enthält eine Recheneinheit in Form einer Ressource 16d, hier eine CPU (Central Processing Unit). Die Ressource 16d dient der Ausführung Anwendungen 8a,b. Neben der Ressource 16d enthält die Umgebung 10 drei Ressourcen 16a-c, die ebenfalls der Ausführung der Anwendungen 8a,b dienen. Die Ressourcen 16a-c sind paarweise voneinander verschieden und verschieden zur Ressource 16d. Die Ressource 16a ist eine GPU (Graphics Processing Unit), die Ressource 16b ein DSP (Digital Signal Processor) und die Ressourcen 16c eine TPU (Tensor Processing Unit).
  • Jede der Anwendungen 8a,b implementiert wenigstens ein neuronales Netz 18a,b. Daneben enthalten die Anwendungen 8a,b eine jeweilige Basisfunktionalität 20 (Core Funktionalität) 20a,b sowie Metadaten 22a,b, welche die Anwendungen 8a,b, insbesondere deren neuronale Netze 18a,b bzw. deren Eigenschaften beschreiben.
  • Die Umgebung 10 ist anhand des Steuerprogrammes 6 dazu eingerichtet, den beiden Anwendungen 8a,b ausschließlich einer jeweilige der Ressourcen 16a-d für wenigstens eine vollständige Ausführung der Anwendung 8a,b zuzuordnen. Im Beispiel wird die Anwendung 8a der Ressourcen 16a zugeordnet, die Anwendung 8b der Ressource 16b. Das neuronale Netz 18a wird also hinsichtlich seiner Inferenz durch die Ressource 16a beschleunigt, das neuronale Netz 18b durch die Ressource 16b.
  • Diese Zuordnung erfolgt auf folgender Basis: Anhand der Metadaten 22a,b ist dem Steuerprogramm 6 bekannt, dass die Ressource 16a das neuronale Netz 18a hinsichtlich seiner Inferenz (Betriebsausführung) gegenüber einer Ausführung auf der Ressource 16d beschleunigt. Entsprechendes gilt für das neuronale Netz 18b und dessen Beschleunigung auf der Ressourcen 16b gegenüber der Ressource 16d. Die Anwendung 8a wird hierbei der Ressource 16a nicht nur für eine einzige Ausführung, sondern für mehrere aufeinanderfolgende, vollständige Ausführungen zugeordnet. Die Ressource 16a bleibt dabei in einem Hochleistungszustand, Zwischenergebnisse einer Ausführung / Inferenz der Anwendung 8a bleiben in der Ressourcen 16a für sukzessive Ausführungen erhalten, was die sukzessive Ausführung der Anwendung 8a weiterbeschleunigt. Die Ausführung erfolgt dabei nach Art einer „burst-execution“, einem bekannten Konzept aus der Android-Programmiertechnik.
  • Mit anderen Worten ist die Umgebung 10 dazu eingerichtet, die Zuordnung der Anwendung 8a,b zu den Ressourcen 16a-d in Abhängigkeit von den Metadaten 22a,b auszuführen. Den Anwendungen 8a,b sind auch Benutzerdaten 24 zugeordnet. Die Benutzerdaten 24 sind Daten, die von einem Benutzer 26 dem Gerät 4 bewusst zugeführt werden. Im Beispiel enthalten die Benutzerdaten 24 die Information, die Anwendung 8b fest der Ressource 16b zuzuordnen. Die Umgebung 10 ist dazu eingerichtet, die Zuordnung der Anwendungen 8a,b zu den bestimmten Ressourcen 16a-d in Abhängigkeit der Benutzerdaten 24 durchzuführen, was vorliegend erfolgt ist.
  • Im Beispiel sind die Metadaten 22a,b in den Anwendungen 8a,b enthalten, alternativ jedoch getrennt von diesen (gestrichelt dargestellt). Denn zum Zeitpunkt der Anwendungs-Verteilung müssen die Benutzerdaten 24 insbesondere schon bekannt sein.
  • Die Erfindung bewegt sich gerade in jenem Raum, in dem allgemeine Informationen über die Ausführung bekannt sind und diese durch Benutzerdaten 24 angereichert werden.
  • Die Benutzerdaten 24 sind getrennt von den Anwendungen 8a,b im Gerät 4 vorgehalten. In einer alternativen, nicht dargestellten Ausführungsform können auch die Benutzerdaten 24 in den Anwendungen 8a,b enthalten sein.
  • Das Gerät 4 enthält auch Laufzeitinformationen 28, die den Anwendungen 8a,b zugeordnet sind. Die Umgebung 10 ist dazu eingerichtet, die Zuordnung der Anwendungen 8a,b zu einer bestimmten der Ressourcen 16a-d in Abhängigkeit von den Laufzeitinformationen 28 durchzuführen. Vorliegend besagen die Laufzeitinformationen 28, dass weitere, hier nicht näher erläuterte Anwendungen mit ausreichender Geschwindigkeit bzw. in ausreichender Zeit und Häufigkeit in der Ressource 16d und der Ressource 16c ausgeführt werden können. Daher kann die Anwendung 8a tatsächlich für die wiederholte Ausführung der Ressource 16a zugeordnet werden und bleiben, da diese anhand der Laufzeitinformationen 28 tatsächlich entsprechend hierfür „frei“ ist.
  • Das Gerät 4 enthält ein Verwaltungsprogramm 30. Dieses dient zur Verwaltung von Konfigurationsdaten 32 der Umgebung 10, sowie der Verwaltung der Laufzeitinformationen 28. Das Verwaltungsprogramm 30 dient mit anderen Worten dem grundlegenden Betrieb des Gerätes 4 mithilfe der Anwendungen 8a,b, deren generelle Aufteilung auf die Ressourcen 16a-d. Das Steuerprogramm 6 ist dem Verwaltungsprogramm insofern überlagert bzw. kooperiert mit diesem, dass es die Zuordnung der Ressourcen 16a-d an die Anwendungen 8a,b wie oben erläutert übernimmt bzw. bewerkstelligt. Im vorliegenden Beispiel ist das Steuerprogramm 6 Teil des Verwaltungsprogramms 30.
  • In einer alternativen Ausführungsform eines Gerätes 2ist das Verwaltungsprogramm 30 vom Steuerprogramm 6 verschieden bzw. getrennt, beide Programme jedoch zur gegenseitigen Kommunikation eingerichtet.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 3757901 A1 [0001]

Claims (11)

  1. Gerät (4) mit einer Umgebung (10) zur Ausführung von Anwendungen (8a,b), wobei mindestens zwei der Anwendungen (8a,b) solche Anwendungen (8a,b) sind, die jeweils wenigstens ein neuronales Netz (18a,b) implementieren, - wobei die Umgebung (10) mindestens zwei voneinander verschiedene Ressourcen (16a-d) zur Ausführung der Anwendungen (8a,b) enthält, - wobei das Gerät (4) wenigstens ein Steuerprogramm (6) enthält und die Umgebung (10) anhand des wenigstens einen Steuerprogramms (6) dazu eingerichtet ist, die mindestens zwei der Anwendungen (8a,b), welche solche Anwendungen (8a,b) sind, die jeweils wenigstens ein neuronales Netz (18a,b) implementieren, ausschließlich einer der mindestens zwei voneinander verschiedenen Ressourcen (16a-d) für wenigstens eine vollständige Ausführung der Anwendungen (8a,b) zuzuordnen.
  2. Gerät (4) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Umgebung (10) dazu eingerichtet ist, wenigstens eine der Anwendungen (8a,b) ausschließlich der Ressource (16a-d) für wenigstens zwei aufeinanderfolgende vollständige Ausführungen der Anwendung (8a,b) zuzuordnen.
  3. Gerät (4) nach einem der vorhergehenden Ansprüche, wobei wenigstens einer der Anwendungen (8a,b) Metadaten (22a,b) zugeordnet sind, dadurch gekennzeichnet, dass die Umgebung (10) dazu eingerichtet ist, die Zuordnung einer Anwendung (8a,b) zu einer bestimmten der Ressourcen (16a-d) in Abhängigkeit von den Metadaten (22a,b) durchzuführen.
  4. Gerät (4) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens einer der Anwendungen (8a,b) Benutzerdaten (24) zugeordnet sind, und die Umgebung (10) dazu eingerichtet ist, die Zuordnung (8a,b) einer Anwendung (8a,b) zu einer bestimmten der Ressourcen (16a-d) in Abhängigkeit von den Benutzerdaten (24) durchzuführen.
  5. Gerät (4) nach einem der Ansprüche 3 oder 4, dadurch gekennzeichnet, dass - falls jeweils vorhanden - die Metadaten (22a,b) und/oder die Benutzerdaten (24) in der Anwendung (8a,b) enthalten sind.
  6. Gerät (4) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens einer der Anwendungen (8a,b) wenigstens eine Laufzeitinformation (28) zugeordnet ist, und die Umgebung (10) dazu eingerichtet ist, die Zuordnung einer Anwendung (8a,b) zu einer bestimmten der Ressourcen (16a-d) in Abhängigkeit von den Laufzeitinformationen (28) durchzuführen.
  7. Gerät (4) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Gerät ein Verwaltungsprogramm (30) zur Verwaltung von Konfigurationsdaten (32) der Umgebung (10) und / oder - falls vorhanden - der Laufzeitinformationen (28) enthält.
  8. Gerät (4) nach Anspruch 7, dadurch gekennzeichnet, dass das Steuerprogramm (6) als Teil des Verwaltungsprogramms (30) ausgebildet ist.
  9. Gerät (4) nach Anspruch 7, dadurch gekennzeichnet, dass das Steuerprogramm (6) vom Verwaltungsprogramm (30) verschieden ist und mit diesem zur wenigstens einseitigen Kommunikation eingerichtet ist.
  10. Geräteanordnung (2), mit dem Gerät (4) nach einem der Ansprüche 1 bis 9, und mit wenigstens zwei der Anwendungen (8a,b), wobei mindestens zwei der Anwendungen (8a,b) solche Anwendungen (8a,b) sind, die jeweils wenigstens ein neuronales Netz (18a,b) implementieren.
  11. Verfahren zum Betreiben des Gerätes (4) nach einem der Ansprüche 1 bis 9 oder der Geräteanordnung (2) nach Anspruch 10, bei dem wenigstens die beiden der Anwendungen (8a,b), die jeweils wenigstens ein neuronales Netz (18a,b) implementieren, ausschließlich einer der mindestens zwei voneinander verschiedenen Ressourcen (16a-d) für wenigstens eine vollständige Ausführung der Anwendungen (8a,b) zugeordnet werden.
DE102022209700.9A 2022-09-15 2022-09-15 Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze Pending DE102022209700A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022209700.9A DE102022209700A1 (de) 2022-09-15 2022-09-15 Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022209700.9A DE102022209700A1 (de) 2022-09-15 2022-09-15 Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze

Publications (1)

Publication Number Publication Date
DE102022209700A1 true DE102022209700A1 (de) 2024-03-21

Family

ID=90062406

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022209700.9A Pending DE102022209700A1 (de) 2022-09-15 2022-09-15 Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze

Country Status (1)

Country Link
DE (1) DE102022209700A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015207570A1 (de) 2015-04-24 2016-10-27 Siemens Aktiengesellschaft Ressourcen-Optimierer für Software-Ökosysteme
EP3757901A1 (de) 2019-06-28 2020-12-30 Intel Corporation Zeitplanbewusstes tensorverteilungsmodul
US20220035679A1 (en) 2020-07-30 2022-02-03 Arm Limited Hardware resource configuration for processing system
US20220269548A1 (en) 2021-02-23 2022-08-25 Nvidia Corporation Profiling and performance monitoring of distributed computational pipelines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015207570A1 (de) 2015-04-24 2016-10-27 Siemens Aktiengesellschaft Ressourcen-Optimierer für Software-Ökosysteme
EP3757901A1 (de) 2019-06-28 2020-12-30 Intel Corporation Zeitplanbewusstes tensorverteilungsmodul
US20220035679A1 (en) 2020-07-30 2022-02-03 Arm Limited Hardware resource configuration for processing system
US20220269548A1 (en) 2021-02-23 2022-08-25 Nvidia Corporation Profiling and performance monitoring of distributed computational pipelines

Similar Documents

Publication Publication Date Title
EP1831786B1 (de) Verfahren zur verteilung von rechenzeit in einem rechnersystem
DE102016204680A1 (de) Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
DE102010038466A1 (de) Gemeinsame Elektronische Steuereinheit und in dieser Implementiertes Weiterleitungsprogramm
DE3911465A1 (de) Verfahren zur konfiguration technischer systeme aus komponenten
DE102017213160B4 (de) Kompilierung für knotenvorrichtungs-GPU-basierte Parallelverarbeitung
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE102018104188A1 (de) Kombiniertes Rendering- und Berechnungs-Ressourcenzuweisungsverwaltungssystem
DE112019005584T5 (de) Arithmetiksteuervorrichtung
DE102017210126A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung
DE1549474B2 (de) Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE102016202305A1 (de) Verfahren und Vorrichtung zum Betreiben eines Steuergeräts
DE102011007603A1 (de) Verfahren und Vorrichtung zur Verarbeitung von Datenelementen mit minimaler Latenzzeit
DE69030942T2 (de) Verfahren und Vorrichtung zur Zuweisung von Operationen
DE102015100566A1 (de) Verfahren und leichter Mechanismus für gemischte kritische Anwendungen
DE102022209700A1 (de) Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze
DE102016219449A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung
WO2018091329A1 (de) Vorrichtung und verfahren zum bearbeiten von aufträgen
DE102011083468A1 (de) Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung
EP3901780A1 (de) Digitale schaltanordnung und verfahren zur konfiguration zumindest einer konfigurierbaren hardwarekomponente
EP2126700B1 (de) Steuerung des laufzeitverhaltens von prozessen
DE112018003505T5 (de) Zugriffssteuereinrichtung
DE102015218589A1 (de) Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
DE102021209509A1 (de) Verfahren und Vorrichtung zum Bearbeiten von zumindest einer ersten und einer zweiten Rechenoperation in einer Recheneinheit

Legal Events

Date Code Title Description
R163 Identified publications notified