DE102021121299A1 - NPU-Vorrichtung, die eine Faltungsoperation basierend auf der Anzahl an Kanälen durchführt, und Betriebsverfahren derselben - Google Patents

NPU-Vorrichtung, die eine Faltungsoperation basierend auf der Anzahl an Kanälen durchführt, und Betriebsverfahren derselben Download PDF

Info

Publication number
DE102021121299A1
DE102021121299A1 DE102021121299.5A DE102021121299A DE102021121299A1 DE 102021121299 A1 DE102021121299 A1 DE 102021121299A1 DE 102021121299 A DE102021121299 A DE 102021121299A DE 102021121299 A1 DE102021121299 A1 DE 102021121299A1
Authority
DE
Germany
Prior art keywords
feature map
input feature
convolution operation
vector
channels
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
DE102021121299.5A
Other languages
English (en)
Inventor
Junseok Park
Suknam Kwon
Changsoo PARK
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102021121299A1 publication Critical patent/DE102021121299A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/15Correlation function computation including computation of convolution operations
    • 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/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

Es ist ein Verfahren zum Erzeugen einer Ausgabemerkmalskarte basierend auf einer Eingabemerkmalskarte bereitgestellt, wobei das Verfahren aufweist: Erzeugen eines Eingabemerkmalskartenvektors für eine Mehrzahl an Eingabemerkmalskartenblöcken, wenn die Anzahl an Kanälen der Eingabemerkmalskarte kleiner ist als eine bestimmte Anzahl an Bezugskanälen; Durchführen einer Faltungsoperation an der Eingabemerkmalskarte basierend auf einer Ziel-Gewichtungskarte und einer zusätzlichen Gewichtungskarte mit einer Gewichtung, die zu jener der Ziel-Gewichtungskarte identisch ist, wenn die Ziel-Gewichtungskartenanzahl kleiner ist als eine Bezugsanzahl; und Erzeugen einer Ausgabemerkmalskarte basierend auf der durchgeführten Faltungsoperation.

Description

  • Querverweis auf ähnliche Anmeldungen
  • Diese Anmeldung basiert auf der und beansprucht die Priorität unter U.S.C. §119 der am 14. Dezember 2020 beim Koreanischen Amt für Geistiges Eigentum eingereichten koreanischen Patentanmeldung Nr. 10-2020-0174731 , deren Offenbarung durch Verweis in ihrer Gesamtheit hierin aufgenommen ist.
  • Hintergrund
  • 1. Technisches Gebiet
  • Die Offenbarung bezieht sich auf eine Neuronale-Verarbeitungseinheits(NPU)-Vorrichtung und ein Betriebsverfahren derselben und insbesondere auf eine NPU-Vorrichtung, die eine Faltungsoperation basierend auf der Anzahl an Kanälen einer Input Feature Map bzw. Eingabemerkmalskarte und einer Output Feature Map bzw. Ausgabemerkmalskarte durchführt, und ein Betriebsverfahren derselben.
  • 2. Beschreibung der verwandten Technik
  • Ein neuronales Netzwerk bezieht sich auf eine numerische Architektur, die ein biologisches Gehirn modelliert. Seit Kurzem, mit der Entwicklung einer neuronalen Netzwerktechnologie, sind verschiedene Arten von elektronischen Systemen für eine Analyse von Eingabedaten und zum Extrahieren gültiger Informationen unter Verwendung einer neuronalen Netzwerkvorrichtung unter Verwendung von mehr als einem neuronalen Netzwerkmodell aktiv erforscht worden.
  • Eine neuronale Netzwerkvorrichtung ist erforderlich zum Durchführen einer großen Anzahl an Operationen mit komplexen Eingabedaten. Damit die neuronale Netzwerkvorrichtung eine Eingabe mit hoher Qualität in Echtzeit analysiert und Informationen extrahiert, ist somit eine Technologie erforderlichen, die zur effizienten Verarbeitung von neuronalen Netzwerkoperationen imstande ist.
  • Das heißt, da eine neuronale Netzwerkvorrichtung eine Operation an komplexen Eingabedaten durchführen muss, werden ein Verfahren und eine Vorrichtung zum effektiven Extrahieren von Daten, die für Operationen von komplexen und enormen Eingabedaten unter Verwendung weniger Ressourcen und eines minimalen Leistungsverbrauchs erforderlich sind, benötigt.
  • Kurzfassung
  • Die Offenbarung stellt eine Neuronale-Verarbeitungseinheits(NPU)-Vorrichtung zum Durchführen einer effizienten Faltungsoperation, wenn die Anzahl an Kanälen in einer Eingabemerkmalskarte und einer Ausgabemerkmalskarte klein ist, bereit.
  • Nach einem Aspekt eines erfinderischen Konzepts der Offenbarung ist ein Verfahren zum Erzeugen einer Ausgabemerkmalskarte basierend auf einer Eingabemerkmalskarte bereitgestellt, wobei das Verfahren aufweist: Erzeugen eines Eingabemerkmalskartenvektors für eine Mehrzahl an Eingabemerkmalskartenblöcken basierend darauf, dass eine Anzahl an Kanälen der Eingabemerkmalskarte kleiner ist als eine Anzahl an Bezugskanälen; Durchführen einer Faltungsoperation zwischen dem Eingabemerkmalskartenvektor und Gewichtungskarten, die eine oder mehrere Ziel-Gewichtungskarten und eine zusätzliche Gewichtungskarte mit einer Gewichtung, die zu der einen oder den mehreren Ziel-Gewichtungskarten identisch ist, enthalten, basierend darauf, dass eine Anzahl der einen oder der mehreren Ziel-Gewichtungskarten kleiner ist als eine Bezugsanzahl; und Erzeugen einer Ausgabemerkmalskarte basierend auf der Faltungsoperation.
  • Nach einem weiteren Aspekt eines erfinderischen Konzepts der Offenbarung ist eine neuronale Verarbeitungseinheit bereit gestellt. Die NPU-Vorrichtung kann einen Vektorgenerator enthalten, der konfiguriert ist, einen Eingabemerkmalskartenvektor für eine Mehrzahl an Eingabemerkmalskartenblöcken basierend darauf zu erzeugen, dass eine Anzahl an Kanälen einer Eingabemerkmalskarte kleiner ist als eine Anzahl an Bezugskanälen; und kann eine Berechnungsschaltung enthalten, die konfiguriert ist: eine Faltungsoperation zwischen dem Eingabemerkmalskartenvektor und Gewichtungskarten, die eine oder mehrere Ziel-Gewichtungskarten und eine zusätzliche Gewichtungskarte mit einer Gewichtung, die zu der einen oder den mehreren Ziel-Gewichtungskarten identisch ist, enthalten, basierend darauf durchzuführen, dass eine Anzahl der einen oder der mehreren Ziel-Gewichtungskarten kleiner ist als eine Bezugsanzahl, und eine Ausgabemerkmalskarte basierend auf einem Ergebnis der Faltungsoperation zu erzeugen.
  • Nach einem weiteren Aspekt eines erfinderischen Konzepts der Offenbarung ist ein Betriebsverfahren der NPU-Vorrichtung, die eine Faltungsoperation basierend auf einer Faltungsoperationsplanung durchführt, bereitgestellt, wobei das Betriebsverfahren aufweist: Einstellen der Faltungsoperationsplanung basierend darauf, dass mindestens eine einer Anzahl an Kanälen einer Eingabemerkmalskarte und einer Anzahl an Kanälen einer Ausgabemerkmalskarte kleiner ist als eine Anzahl an Bezugskanälen; Durchführen einer Faltungsoperation einer Gewichtungskarte an der Eingabemerkmalskarte basierend auf der eingestellten Faltungsoperationsplanung; und Erzeugen der Ausgabemerkmalskarte basierend auf der Faltungsoperation.
  • Nach einem weiteren Aspekt eines erfinderischen Konzepts der Offenbarung ist eine Neuronale-Verarbeitungseinheits(NPU)-Vorrichtung bereitgestellt, die enthält: einen Speicher, der eine oder mehrere Anweisungen speichert; und einen Prozessor, der konfiguriert ist, die eine oder die mehreren Anweisungen auszuführen, um: zu bestimmen, ob eine Anzahl an Kanälen einer Eingabemerkmalskarte kleiner ist als eine Anzahl an Bezugskanälen; einen Eingabemerkmalskartenvektor basierend darauf zu erzeugen, dass die Anzahl an Kanälen der Eingabemerkmalskarte kleiner ist als die Anzahl an Bezugskanälen; zu bestimmen, ob eine Anzahl an Ziel-Karten kleiner ist als eine Anzahl an verfügbaren Kanälen einer Ausgabemerkmalskarte; eine zusätzliche Gewichtungskarte mit einer Gewichtung, die zu einer der Ziel-Gewichtungskarten identisch ist, basierend darauf zu erzeugen, dass die Anzahl an Ziel-Karten kleiner ist als die Anzahl an verfügbaren Kanälen der Ausgabemerkmalskarte; und eine Faltungsoperation am Eingabemerkmalskartenvektor mit den Ziel-Gewichtungskarten und der zusätzlichen Gewichtungskarte durchzuführen, um die Ausgabemerkmalskarte zu erzeugen.
  • Figurenliste
  • Für ein deutlicheres Verständnis der Ausführungsformen des erfinderischen Konzepts sorgt die folgende, ausführliche Beschreibung in Verbindung mit den beigefügten Zeichnungen, wobei:
    • 1 ein Blockdiagramm von Komponenten einer NPU-Vorrichtung nach einem Ausführungsbeispiel ist;
    • 2 und 3 Ansichten einer Struktur eines konvolutionären neuronalen Netzwerks nach einem Ausführungsbeispiel sind;
    • 4 eine Ansicht zum Beschreiben einer Faltungsoperation nach einem Ausführungsbeispiel ist;
    • 5 ein Flussdiagramm ist, das ein Betriebsverfahren einer NPU-Vorrichtung nach einem Ausführungsbeispiel darstellt;
    • 6 eine Ansicht von Kanälen einer Eingabemerkmalskarte für eine Mehrzahl an verfügbaren Kanälen nach einem Ausführungsbeispiel ist;
    • 7 ein Blockdiagramm einer Konfiguration zum Erzeugen einer Ausgabemerkmalskarte durch Erzeugen eines Eingabemerkmalskartenvektors nach einem Ausführungsbeispiel ist;
    • 8 eine Ansicht einer Mehrzahl an Eingabemerkmalskartenblöcken, die einer Gewichtungskarte einer 3D-Struktur entsprechen, nach einem Ausführungsbeispiel ist;
    • 9 eine Ansicht eines Eingabemerkmalskartenvektors, der basierend auf einer Mehrzahl an Eingabemerkmalskartenblöcken erzeugt wird, nach einem Ausführungsbeispiel ist;
    • 10 und 11 Ansichten einer Gewichtungskarte und eines Gewichtungskartenvektors nach einem Ausführungsbeispiel sind;
    • 12 ein Blockdiagramm eines Beispiels ist, in dem ein Eingabemerkmalskartenvektor durch zwei von einer Mehrzahl an Vektorgeneratoren erzeugt wird;
    • 13 eine Ansicht ist, die eine Eingabemerkmalskarte, die eine Mehrzahl an Eingabemerkmalskartenblöcken enthält, nach einem weiteren Ausführungsbeispiel darstellt;
    • 14 eine Ansicht eines Eingabemerkmalskartenvektors ist, der basierend auf einer Mehrzahl an Eingabemerkmalskartenblöcken nach der Ausführungsform aus 13 erzeugt wird;
    • 15 eine Ansicht einer Ausgabemerkmalskarte, die durch Durchführen einer Faltungsoperation unter Verwendung einer Mehrzahl an Ziel-Gewichtungskarten erzeugt wird, nach einem Ausführungsbeispiel ist;
    • 16 ein Blockdiagramm einer Konfiguration zum Erzeugen einer Ausgabemerkmalskarte basierend auf einer zusätzlichen Gewichtungskarte nach einem Ausführungsbeispiel ist;
    • 17 eine Ansicht von Gewichtungskartensätzen ist, die nach einem Ausführungsbeispiel erzeugte zusätzliche Gewichtungskarten enthalten;
    • 18 eine Ansicht einer Ausgabemerkmalskarte ist, die durch einen Gewichtungskartensatz, der zusätzliche Gewichtungskarten enthält, erzeugt wird;
    • 19 eine Ansicht einer Eingabemerkmalskarte ist, die eine Mehrzahl an Eingabemerkmalskartenblöcken enthält, wenn eine tiefenartige Faltungsoperation durchgeführt wird;
    • 20 eine Ansicht einer Konfiguration einer Berechnungsschaltung eines Vergleichsbeispiels zum Durchführen einer tiefenartigen Faltungsoperation ist;
    • 21 ein Blockdiagramm einer Konfiguration zum Erzeugen einer Ausgabemerkmalskarte basierend auf einer zusätzlichen Gewichtungskarte nach einem Ausführungsbeispiel ist;
    • 22 eine Ansicht eines Eingabemerkmalskartenvektors ist, der basierend auf einem identischen Kanalbereich aus einer Mehrzahl an Eingabemerkmalskartenblöcken erzeugt wird, wenn eine tiefenartige Faltungsoperation durchgeführt wird; und
    • 23 eine Ansicht einer Mehrzahl an Berechnungsschaltungen ist, die eine tiefenartige Faltungsoperation nach der Ausführungsform aus 21 durchführen.
  • Ausführliche Beschreibung der Ausführungsformen
  • Nachfolgend werden Ausführungsformen des erfinderischen Konzepts mit Bezug auf die beigefügten Zeichnungen ausführlich beschrieben.
  • 1 ist ein Blockdiagramm von Komponenten einer Neuronale-Verarbeitungseinheits(NPU)-Vorrichtung nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 1 kann eine NPU-Vorrichtung 10 Eingabedaten in Echtzeit basierend auf einem neuronalen Netzwerk analysieren, um gültige Informationen zu extrahieren, eine Situation basierend auf den extrahierten Informationen bestimmen oder Konfigurationen einer elektronischen Vorrichtung, in der die NPU-Vorrichtung 10 angebracht ist, steuern. Nach einem Ausführungsbeispiel kann die NPU-Vorrichtung 10 eine Situation basierend auf den extrahierten Informationen identifizieren. Zum Beispiel kann die NPU-Vorrichtung 10 auf eine Drohne, ein modernes Fahrassistenzsystem (ADAS), einen Smart-TV, ein Smartphone, eine medizinische Vorrichtung, eine mobile Vorrichtung, eine Videoanzeigevorrichtung, eine Messvorrichtung, eine Internetder-Dinge(IoT)-Vorrichtung oder dergleichen angewandt werden und kann auf einem von verschiedenen Typen eines elektronischen Systems angebracht sein. Die Offenbarung ist jedoch nicht darauf beschränkt und somit kann die NPU-Vorrichtung 10 mit jedem beliebigen Typ einer elektronischen Vorrichtung integriert sein. Nach einem weiteren Ausführungsbeispiel kann die NPU-Vorrichtung als eine eigenständige Vorrichtung umgesetzt sein.
  • Die NPU-Vorrichtung 10 kann mindestens einen Intellectual-Property(IP)-Block und einen neuronalen Netzwerkprozessor 300 enthalten. Die NPU-Vorrichtung 10 kann verschiedene Arten von IP-Blöcken enthalten. Wie in 1 gezeigt, kann der IP-Block zum Beispiel einen Hauptprozessor 100, einen Direktzugriffsspeicher (RAM) 200, eine Eingabe/Ausgabe(I/O)-Vorrichtung 400 und einen Speicher 500 enthalten. Zusätzlich kann die NPU-Vorrichtung 10 ferner andere Universalkomponenten enthalten, wie einen Multiformat-Codec (MFC), ein Videomodul (z.B. eine Kameraschnittstelle, einen Joint-Photographic-Experts-Group(JPEG)-Prozessor, einen Videoprozessor oder einen Mischer), einen 3D-Grafikkern, ein Audiosystem, einen Anzeigetreiber, eine Grafikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP) und dergleichen.
  • Konfigurationen der NPU-Vorrichtung 10, zum Beispiel der Hauptprozessor 100, der RAM 200, der neuronale Netzwerkprozessor 300, die Eingabe/Ausgabe-Vorrichtung 400 und der Speicher 500, können Daten durch einen Systembus 600 senden und empfangen. Zum Beispiel kann eine modernes Mikrocontroller-Busarchitektur(AMBA)-Protokoll einer modernen RISC-Maschine (ARM) als eine Standardbusspezifikation auf den Systembus 600 angewandt werden. Das erfinderische Konzept ist jedoch nicht darauf beschränkt und verschiedene Arten von Protokollen können angewandt werden.
  • Nach einem Ausführungsbeispiel sind die Komponenten der NPU-Vorrichtung 10, die den Hauptprozessor 100, den RAM 200, den neuronalen Netzwerkprozessor 300, die Eingabe/Ausgabe-Vorrichtung 400 und den Speicher 500 enthalten, als ein einzelner Halbleiterchip umgesetzt. Zum Beispiel kann die NPU-Vorrichtung 10 als ein Ein-Chip-System (SoC) umgesetzt sein. Das erfinderische Konzept ist jedoch nicht darauf beschränkt und die NPU-Vorrichtung 10 kann mit einer Mehrzahl an Halbleiterchips umgesetzt sein. In einer Ausführungsform kann die NPU-Vorrichtung 10 als ein Anwendungsprozessor umgesetzt sein, der auf einer mobilen Vorrichtung angebracht ist.
  • Der Hauptprozessor 100 kann alle Operationen der NPU-Vorrichtung 10 steuern und der Hauptprozessor 100 kann zum Beispiel eine zentrale Verarbeitungseinheit (CPU) sein. Der Hauptprozessor 100 kann einen Einzelkern enthalten oder kann einen Mehrkern enthalten. Der Hauptprozessor 100 kann Programme und/oder Daten, die im RAM 200 und dem Speicher 500 gespeichert sind, verarbeiten oder ausführen. Zum Beispiel kann der Hauptprozessor 100 verschiedene Funktionen der NPU-Vorrichtung 10 durch Ausführen von im Speicher 500 gespeicherten Programmen steuern.
  • Der RAM 200 kann Programme, Daten oder Anweisungen vorübergehend speichern. Zum Beispiel können die im Speicher 500 gespeicherten Programme und/oder Daten gemäß einer Steuerung des Hauptprozessors 100 oder eines Bootcodes vorübergehend in den RAM 200 geladen werden. Der RAM 200 kann unter Verwendung eines Speichers, wie eines dynamischen RAM (DRAM) oder eines statischen RAM (SRAM), umgesetzt werden.
  • Die Eingabe/Ausgabe-Vorrichtung 400 kann Eingabedaten von einem Benutzer oder einer externen Vorrichtung empfangen und kann ein Datenverarbeitungsergebnis der NPU-Vorrichtung 10 ausgeben. Die Eingabe/Ausgabe-Vorrichtung 400 kann unter Verwendung von mindestens einem eines Touchscreen-Panels, einer Tastatur und verschiedenen Arten von Sensoren umgesetzt werden. Nach einer Ausführungsform kann die Eingabe/Ausgabe-Vorrichtung 400 Informationen rund um die NPU-Vorrichtung 10 sammeln. Zum Beispiel kann die Eingabe/Ausgabe-Vorrichtung 400 mindestens einen von verschiedenen Typen von Erfassungsvorrichtungen, wie einer Abbildungsvorrichtung, einem Bildsensor, einem Sensor zur Lichtdetektion und -entfernung (LIDAR), einem Ultraschallsensor und einem Infrarotsensor, enthalten oder kann ein Erfassungssignal von der Vorrichtung empfangen. In einer Ausführungsform kann die Eingabe/Ausgabe-Vorrichtung 400 ein Bildsignal von außerhalb der NPU-Vorrichtung 10 erfassen oder empfangen und kann das erfasste oder empfangene Bildsignal in Bilddaten, das heißt, einen Bild-Frame, umwandeln. Die Eingabe/Ausgabe-Vorrichtung 400 kann den Bild-Frame im Speicher 500 speichern oder kann den Bild-Frame an den neuronalen Netzwerkprozessor 300 übermitteln.
  • Der Speicher 500 ist ein Speicherbereich zum Speichern von Daten und kann zum Beispiel ein Betriebssystem (OS), verschiedene Programme und verschiedene Daten speichern. Der Speicher 500 kann ein DRAM sein, ist jedoch nicht darauf beschränkt. Der Speicher 500 kann mindestens einen von einem flüchtigen Speicher und einem nichtflüchtigen Speicher enthalten. Der nichtflüchtige Speicher kann enthalten: einen Festwertspeicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren und programmierbaren ROM (EEPROM), einen Flash-Speicher, einen Phasenübergangs-RAM (PRAM), einen magnetischen RAM (MRAM), einen resistiven RAM (RRAM) oder einen ferroelektrischen RAM (FRAM). Der flüchtige Speicher kann einen DRAM, SRAM, synchronen DRAM (SDRAM) oder PRAM enthalten. Darüber hinaus kann ein Speicher 150 in einer Ausführungsform als eine Speichervorrichtung umgesetzt sein, wie ein Festplattenlaufwerk (HDD), ein Festkörperlaufwerk (SSD), ein Compact-Flash (CF), ein Secure Digital (SD), ein Micro Secure Digital (Micro-SD), ein Mini Secure Digital (Mini-SD), ein Extreme Digital (xD) oder ein Speicherstick.
  • Der neuronale Netzwerkprozessor 300 kann ein neuronales Netzwerk erzeugen, kann ein neuronales Netzwerk trainieren oder lernen, kann eine Operation basierend auf empfangenen Eingabedaten durchführen, kann ein Informationssignal basierend auf einem Ergebnis der Operation erzeugen und kann das neuronale Netzwerk umschulen. Das neuronale Netzwerk kann verschiedene Typen von neuronalen Netzwerkmodellen enthalten, wie ein konvolutionäres Netzwerk (CNN), einen Bereich mit einem CNN (R-CNN), ein Bereichsvorschlagsnetzwerk (RPN), ein wiederkehrendes neuronales Netzwerk (RNN), ein stapelbasiertes neuronales tiefes Netzwerk (S-DNN), ein dynamisches neuronales Raum-Zeit-Netzwerk (S-SDNN), ein dekonvolutionäres Netzwerk, ein Deep-Belief-Netzwerk (DBN), eine eingeschränkte Boltzmann-Maschine (RBM), ein vollständig konvolutionäres Netzwerk, ein Long-Short-Term-Memory(LSTM)-Netzwerk und ein Klassifikationsnetzwerk, ist jedoch nicht darauf beschränkt. Eine neuronale Netzwerkstruktur wird mit Bezug auf 2 beispielhaft beschrieben.
  • 2 und 3 sind Ansichten einer Struktur eines konvolutionären neuronalen Netzwerks nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 2 kann ein neuronales Netzwerk NN eine Mehrzahl an Schichten L1 bis Ln enthalten. Das neuronale Netzwerk NN kann eine Architektur eines neuronalen tiefen Netzwerks DNN oder von n-schichtigen neuronalen Netzwerken sein. Die Mehrzahl an Schichten L1 bis Ln kann als eine konvolutionäre Schicht, eine Pooling-Schicht, eine Aktivierungsschicht und eine vollständig verbundene Schicht umgesetzt sein.
  • Zum Beispiel kann die erste Schicht L1 eine konvolutionäre Schicht sein, die zweite Schicht L2 kann eine Pooling-Schicht sein und eine n-te Schicht Ln ist eine Ausgabeschicht und kann eine vollständig verbundene Schicht sein. Das neuronale Netzwerk NN kann ferner eine Aktivierungsschicht enthalten und kann ferner eine Schicht enthalten, die andere Arten von Operationen durchführt.
  • Jede der Mehrzahl an Schichten L1 bis Ln kann Eingabedaten (z.B. einen Bild-Frame) oder eine Merkmalskarte, die in einer vorherigen Schicht als eine Eingabemerkmalskarte erzeugt wird, empfangen und kann eine Ausgabemerkmalskarte oder ein Erkennungssignal REC durch Berechnen der Eingabemerkmalskarte erzeugen. In diesem Fall bezieht sich die Merkmalskarte auf Daten, in denen verschiedene Merkmale der Eingabedaten ausgedrückt sind. Merkmalskarten FM1, FM2 und FMn können zum Beispiel eine 2D-Matrix- oder eine 3D-Matrix(oder Tensor-)-Struktur aufweisen. Die Merkmalskarten FM1, FM2 und FMn können mindestens einen Kanal CH enthalten, in dem Merkmalswerte in einer Matrix angeordnet sind. Wenn die Merkmalskarten FM1, FM2 und FMn eine Mehrzahl an Kanälen CH enthalten, ist die Anzahl an Zeilen H und die Anzahl an Spalten W der Mehrzahl an Kanälen CH dieselbe. In diesem Fall können die Zeile H, die Spalte W und der Kanal CH jeweils einer x-Achse, y-Achse und z-Achse der Koordinaten entsprechen. Merkmalswerte, die in einer spezifischen Zeile H und Spalte W in einer 2D-Matrix in eine x-Achsen- und y-Achsenrichtung angeordnet sind (nachfolgend bezeichnet die Matrix in der Offenbarung eine 2D-Matrix in der x-Achsen- und y-Achsenrichtung), können als Elemente der Matrix bezeichnet werden. Zum Beispiel kann eine 4x5-Matrixstruktur 20 Elemente enthalten.
  • Die erste Schicht L1 kann die zweite Merkmalskarte FM2 durch Falten der ersten Merkmalskarte FM1 mit einem gewichteten Kernel WK erzeugen. Der gewichtete Kernel WK kann als ein Filter, eine Gewichtungskarte oder dergleichen bezeichnet werden. Der gewichtete Kernel WK kann die erste Merkmalskarte FM1 filtern. Eine Struktur des gewichteten Kernels WK ist jener der Merkmalskarte ähnlich. Der gewichtete Kernel WK enthält mindestens einen Kanal CH, in dem Gewichtungen in einer Matrix angeordnet sind. Darüber hinaus kann die Anzahl an Kanälen CH des gewichteten Kernels WK dieselbe sein wie die Anzahl an Kanälen einer entsprechenden Merkmalskarte, zum Beispiel der ersten Merkmalskarte FM1. Dieselben Kanäle CH des gewichteten Kernels WK und der ersten Merkmalskarte FM1 können gefaltet werden. Zum Beispiel können ein erster Kanal CH des gewichteten Kernels WK und ein entsprechender erster Kanal CH der ersten Merkmalskarte FM1 gefaltet werden. Nachfolgend kann der gewichtete Kernel WK als eine Gewichtungskarte bezeichnet werden. Wenn die zweite Merkmalskarte FM2 durch Falten der ersten Merkmalskarte FM1 mit der Gewichtungskarte erzeugt wird, kann die erste Merkmalskarte FM1 als eine Eingabemerkmalskarte bezeichnet werden und die zweite Merkmalskarte FM2 kann als eine Ausgabemerkmalskarte bezeichnet werden.
  • Während der gewichtete Kernel WK die erste Merkmalskarte FM1 auf eine Gleitfensterweise verschiebt, kann der gewichtete Kernel WK mit Fenstern (oder Kacheln) der ersten Merkmalskarte FM1 gefaltet werden. Während jeder Verschiebung kann jede im gewichteten Kernel WK enthaltene Gewichtung multipliziert und zu allen Merkmalswerten in einem Bereich, der die erste Merkmalskarte FM1 überlappt, addiert werden. Wenn die erste Merkmalskarte FM1 und der gewichtete Kernel WK gefaltet werden, kann ein Kanal der zweiten Merkmalskarte FM2 erzeugt werden. Obwohl in 2 ein gewichteter Kernel WK gezeigt ist, kann eine Mehrzahl an gewichteten Kerneln WK mit der ersten Merkmalskarte FM1 gefaltet werden, um die zweite Merkmalskarte FM2 zu erzeugen, die eine Mehrzahl an Kanälen enthält.
  • Ein neuronales Netzwerk nach einem Ausführungsbeispiel kann ein Segmentierungsnetzwerk sein, wie ein DeepLabV3, und die NPU-Vorrichtung 10 kann eine Dekodierungsoperation zum Wiederherstellen eines Bildes nach einer Kodierungsoperation durchführen. In diesem Fall, wenn die Dekodierungsoperation durchgeführt wird, kann die NPU-Vorrichtung 10 eine Eingabemerkmalskarte für einige von verfügbaren Kanälen empfangen oder kann eine Ausgabemerkmalskarte für einige der Kanäle erzeugen. Zum Beispiel kann die NPU-Vorrichtung 10 eine Faltungsoperation unter Verwendung von lediglich 4 Kanälen von 32 verfügbaren Kanälen durchführen.
  • Bezugnehmend auf 3 können Eingabemerkmalskarten (IFM) 301 D Kanäle enthalten und eine Eingabemerkmalskarte von jedem Kanal kann eine Größe von H Zeilen und W Spalten aufweisen (D, H und W sind natürliche Zahlen). Jeder von Kerneln 302 weist eine Größe von R Zeilen und S Spalten auf und der Kernel 302 kann eine Anzahl an Kanälen enthalten, die der Anzahl an Kanälen (oder Tiefen) D der Eingabemerkmalskarte 301 entspricht (R und S sind natürliche Zahlen). Ausgabemerkmalskarten (OFM) 303 können durch eine 3D-Faltungsoperation zwischen den Eingabemerkmalskarten 301 und den Kerneln 302 erzeugt werden und können Y Kanäle gemäß der Faltungsoperation enthalten. Y kann der Anzahl an Kerneln entsprechen, die Faltungsoperationen durchführen. Die Ausgabemerkmalskarten (OFM) 303 können eine Mehrzahl an Ausgabemerkmalselementen 304 enthalten.
  • Ein Prozess zum Erzeugen einer Ausgabemerkmalskarte durch eine Faltungsoperation zwischen einer Eingabemerkmalskarte und einem Kernel kann mit Bezug auf 4 beschrieben werden. Eine in 4 beschriebene 2D-Faltungsoperation wird zwischen den Eingabemerkmalskarten 301 aller Kanäle und den Kerneln 302 aller Kanäle durchgeführt, sodass die Ausgabemerkmalskarten 303 aller Kanäle erzeugt werden können.
  • 4 ist eine Ansicht zum Beschreiben einer Faltungsoperation nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 4 wird der Einfachheit der Erläuterung halber angenommen, dass die Eingabemerkmalskarte 301 eine Größe von 6x6 aufweist, der Kernel 302 eine Größe von 3x3 aufweist und die Ausgabemerkmalskarte 303 eine Größe von 4x4 aufweist, das erfinderische Konzept ist jedoch nicht darauf beschränkt. Das neuronale Netzwerk kann mit Merkmalskarten und Kerneln verschiedener Größen umgesetzt sein. Zusätzlich sind alle Werte, die in der Eingabemerkmalskarte 301, dem Kernel 302 und der Ausgabemerkmalskarte 303 definiert sind, Beispielwerte und Ausführungsformen der Offenbarung sind nicht darauf beschränkt.
  • Der Kernel 302 kann eine Faltungsoperation durchführen, während er eine 3x3-Fenstereinheit in die Eingabemerkmalskarte 301 schiebt. Die Faltungsoperation kann eine Operation zum Erhalten aller Merkmalsdaten der Ausgabemerkmalskarte 303 durch Summieren aller Werte, die durch Multiplizieren aller Merkmalsdaten eines Fenster der Eingabemerkmalskarte 301 und jeder Gewichtung an einer Position, die dem Kernel 302 entspricht, erhalten werden, darstellen. Im Fenster der Eingabemerkmalskarte 301 enthaltene Daten, die mit den Gewichtungsdaten multipliziert werden, können als extrahierte Daten bezeichnet werden, die aus der Eingabemerkmalskarte 301 extrahiert werden. Ausführlicher kann der Kernel 302 zunächst eine Faltungsoperation mit ersten extrahierten Daten 301a der Eingabemerkmalskarte 301 durchführen. Das heißt, Merkmalsdaten 1, 2, 3, 4, 5, 6, 7, 8 und 9 der ersten extrahierten Daten 301a werden mit -1, -3, 4, 7, -2, -1, -5, 3 und 1, die jeweils Gewichtungen des Kernels 302 entsprechen, multipliziert. Infolgedessen können -1, -6, 12, 28, -10, -6, -35, 24 und 9 erhalten werden. Als nächstes werden -1, -6, 12, 28, -10, -6, -35, 24 und 9 addiert, um 15 zu erzeugen, was ein Ergebnis einer Addition aller erhaltener Werte -1, -6, 12, 28, -10, -6, -35, 24 und 9 ist. Somit kann ein Merkmalselement 304a einer ersten Zeile und einer ersten Spalte in der Ausgabemerkmalskarte 303 als 15 bestimmt werden. Hier entsprechen die Merkmalselemente 304a der ersten Zeile und ersten Spalte in der Ausgabemerkmalskarte 303 den ersten extrahierten Daten 301a. Auf dieselbe Weise, durch Durchführen einer Faltungsoperation zwischen zweiten extrahierten Daten 301b der Eingabemerkmalskarte 301 und dem Originalkernel 302, 4, kann ein Merkmalselement 304b der ersten Zeile und einer zweiten Spalte der Ausgabemerkmalskarte 303 bestimmt werden. Schließlich, durch Durchführen einer Faltungsoperation zwischen 16-ten extrahierten Daten 301c, welche die letzten extrahierten Daten der Eingabemerkmalskarte 301, 11, sind, kann ein Merkmalselement 304c einer vierten Zeile und einer vierten Spalte der Ausgabemerkmalskarte 303 bestimmt werden.
  • Mit anderen Worten kann eine Faltungsoperation zwischen einer Eingabemerkmalskarte 301 und einem Kernel 302 durch wiederholtes Durchführen einer Multiplikation von extrahierten Daten der Eingabemerkmalskarte 301 und entsprechenden Gewichtungen des Originalkernels 301 und der Summierung der Multiplikationsergebnisse verarbeitet werden und die Ausgabemerkmalskarte 303 kann aufgrund der Faltungsoperation erzeugt werden.
  • 4 stellt eine Faltungsoperation für die Eingabemerkmalskarte 301 einer 2D-Struktur dar. Die Eingabemerkmalskarte 301 nach einem Ausführungsbeispiel weist jedoch eine 3D-Struktur auf und die NPU-Vorrichtung 10 führt eine Faltungsoperation an der Eingabemerkmalskarte 301 und dem Kernel 302, der einem identischen Kanal entspricht, durch, wodurch die Ausgabemerkmalskarte 303 für die Eingabemerkmalskarte 301 mit einer 3D-Struktur, die eine Mehrzahl an Kanälen enthält, bereitgestellt wird. Zusätzlich kann die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte 303 durch Durchführen einer Faltungsoperation an einem Kernel 302 und der Eingabemerkmalskarte 301 ausgeben. Die NPU-Vorrichtung 10 kann jedoch eine Ausgabemerkmalskarte 303 durch Durchführen einer Faltungsoperation an einer Mehrzahl an Kerneln 302 und der Eingabemerkmalskarte 301 ausgeben. Hier, wenn es eine Mehrzahl an Kerneln 302 gibt, kann die Anzahl an Kanälen der Ausgabemerkmalskarte 303 der Anzahl an Kerneln entsprechen.
  • 5 ist ein Flussdiagramm, das ein Betriebsverfahren der NPU-Vorrichtung 10 nach einem Ausführungsbeispiel darstellt.
  • Bezugnehmend auf 5, wenn die Anzahl an Kanälen in einer Eingabemerkmalskarte kleiner ist als eine bestimmte Anzahl an Bezugskanälen, wenn die NPU-Vorrichtung 10 eine tiefenartige Faltungsoperation durchführt, und wenn die Anzahl an Kanälen in einer Ausgabemerkmalskarte kleiner ist als eine Bezugsanzahl, da die Ziel-Gewichtungskartenanzahl kleiner ist als die Bezugsanzahl, kann die NPU-Vorrichtung 10 eine Faltungsoperation unter Verwendung von so vielen verfügbaren Kanälen wie möglich durch Erzeugen eines Eingabemerkmalskartenvektors oder einer zusätzlichen Gewichtungskarte durchführen. Die Anzahl an Bezugskanälen und die Bezugsanzahl können voreingestellte Anzahlen sein.
  • In Operation S10 kann die NPU-Vorrichtung 10 die Anzahl an Kanälen der Eingabemerkmalskarte und die Anzahl an Bezugskanälen vergleichen. In Operation S20, wenn die Anzahl an Kanälen der Eingabemerkmalskarte kleiner oder gleich der Anzahl an Bezugskanälen ist, kann ein Eingabemerkmalskartenvektor erzeugt werden. Die NPU-Vorrichtung 10 nach einem Ausführungsbeispiel kann basierend auf einem Ergebnis des Vergleichs der Anzahl an Bezugskanälen und der Anzahl an Kanälen der Eingabemerkmalskarte bestimmen, ob ein Eingabemerkmalskartenvektor in einer entsprechenden Schicht erzeugt werden soll, die Offenbarung ist jedoch nicht darauf beschränkt. Somit kann nach einem weiteren Ausführungsbeispiel eine Schicht, die eine Faltungsoperation durchführen soll, durch Erzeugen eines Eingabemerkmalskartenvektors eingestellt werden.
  • In Operation S30 kann die NPU-Vorrichtung 10 bestimmen, ob eine tiefenartige Faltungsoperation durchgeführt werden soll, und kann einen Eingabemerkmalskartenvektor in Operation S20 basierend auf einer Bestimmung, dass eine tiefenartige Faltungsoperation durchgeführt wird, erzeugen. Der Eingabemerkmalskartenvektor kann ein Vektor sein, der durch Verbinden von mindestens einigen einer Mehrzahl an Eingabemerkmalskartenblöcken erzeugt wird, und ein Eingabemerkmalskartenblock kann ein Element enthalten, das mindestens einem Eingabewert entspricht. Zum Beispiel kann der Eingabemerkmalskartenvektor ein Vektor sein, der durch Verbinden aller der Mehrzahl an Eingabemerkmalskartenblöcken erzeugt wird, oder kann ein Vektor sein, der durch Verbinden einiger von Eingabemerkmalskartenblöcken in einem identischen Kanalbereich aus der Mehrzahl an Eingabemerkmalskartenblöcken erzeugt wird. Eine Ausführungsform zum Erzeugen eines Eingabemerkmalskartenvektors wird später mit Bezug auf 6 bis 18 ausführlich beschrieben.
  • In Operation S40 kann die NPU-Vorrichtung 10 bestimmen, ob eine zusätzliche Gewichtungskarte erzeugt werden soll. Zum Beispiel kann die NPU-Vorrichtung 10 bestimmen, ob die Anzahl an Gewichtungskarten größer ist als die Bezugsanzahl. In Operation S50, wenn die Anzahl an Gewichtungskarten größer ist als die Bezugsanzahl, kann die NPU-Vorrichtung 10 mindestens eine zusätzliche Gewichtungskarte erzeugen, die eine Gewichtung aufweist, die zu jener der Ziel-Gewichtungskarte identisch ist. Bezugnehmend auf 4 kann die Anzahl an Gewichtungskarten die Anzahl an Kerneln sein, die eine Faltungsoperation an einer Eingabemerkmalskarte durchführen, und die Anzahl an Gewichtungskarten kann der Anzahl an Kanälen einer Ausgabemerkmalskarte entsprechen. Die NPU-Vorrichtung 10 nach einem Ausführungsbeispiel kann basierend auf einem Ergebnis eines Vergleichs der Anzahl an Gewichtungskarten und der Bezugsanzahl bestimmen, ob eine zusätzliche Gewichtungskarte in einer entsprechenden Schicht erzeugt werden soll, die Offenbarung ist jedoch nicht darauf beschränkt. Somit kann nach einem weiteren Ausführungsbeispiel eine Schicht, die eine Faltungsoperation durchführen soll, durch Erzeugen einer zusätzlichen Gewichtungskarte eingestellt werden.
  • In Operation S60, wenn ein Eingabemerkmalskartenvektor erzeugt wird, kann die NPU-Vorrichtung 10 eine Faltungsoperation mit einer Mehrzahl an Gewichtungskarten durchführen. Ausführlicher kann die NPU-Vorrichtung 10 einen Gewichtungskartenvektor aus einer Gewichtungskarte durch ein Verfahren zum Erzeugen eines Eingabemerkmalskartenvektors aus einer Eingabemerkmalskarte erzeugen und kann eine Punktproduktoperation an dem Eingabemerkmalskartenvektor und dem Gewichtungskartenvektor durchführen.
  • Wenn die NPU-Vorrichtung 10 eine zusätzliche Gewichtungskarte erzeugt, kann die NPU-Vorrichtung 10 eine Faltungsoperation mit einer Ziel-Gewichtungskarte und der zusätzlichen Gewichtungskarte an der Eingabemerkmalskarte oder dem Eingabemerkmalskartenvektor durchführen. Wenn zum Beispiel die NPU-Vorrichtung 10 einen Eingabemerkmalskartenvektor erzeugt, kann die NPU-Vorrichtung 10 eine Faltungsoperation mit einem Gewichtungskartenvektor basierend auf einer Ziel-Gewichtungskarte und einer zusätzlichen Gewichtungskarte am Eingabemerkmalskartenvektor durchführen. Wenn die NPU-Vorrichtung 10 jedoch keinen Eingabemerkmalskartenvektor erzeugt, kann die NPU-Vorrichtung 10 eine Faltungsoperation mit der Ziel-Gewichtungskarte und der zusätzlichen Gewichtungskarte an der Eingabemerkmalskarte durchführen. Eine Ausführungsform, in der die NPU-Vorrichtung 10 eine zusätzliche Gewichtungskarte zum Durchführen einer Faltungsoperation erzeugt, wird später mit Bezug auf 19 bis 22 beschrieben.
  • In Operation S70 kann die NPU-Vorrichtung 10 ein Ergebnis einer Durchführung der Faltungsoperation mit einem Element einer Ausgabemerkmalskarte erzeugen und kann eine Ausgabemerkmalskarte mit einer Mehrzahl an Ausgabemerkmalskartenelementen erzeugen. Kanäle der Ausgabemerkmalskarte können gleich der Anzahl an Gewichtungskarten konfiguriert sein und wenn die NPU-Vorrichtung 10 eine zusätzliche Gewichtungskarte erzeugt, kann die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte ausgeben, die mehr Kanäle enthält als die Anzahl an Ziel-Gewichtungskarten.
  • 6 ist eine Ansicht von Kanälen einer Eingabemerkmalskarte für eine Mehrzahl an verfügbaren Kanälen nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 6 kann die NPU-Vorrichtung 10 des erfinderischen Konzepts die Eingabemerkmalskarte 301 erzeugen, die eine Mehrzahl an Kanälen enthält, um eine Faltungsoperation durchzuführen. Die Eingabemerkmalskarte 301 kann eine von einer weiteren Schicht ausgegebene Ausgabemerkmalskarte sein und die NPU-Vorrichtung 10 kann eine Faltungsoperation unter Verwendung einer Ausgabemerkmalskarte durchführen, die von einer anderen Schicht als der Eingabemerkmalskarte 301 ausgegeben wird. Die Offenbarung ist jedoch nicht darauf beschränkt und somit ist die Eingabemerkmalskarte 301 womöglich nicht aus einer vorherigen Schicht. Die NPU-Vorrichtung 10 kann einen Hardware-Raum oder Hardware-Ressourcen zum Durchführen einer Faltungsoperation als einen verfügbaren Kanal C sichern und kann eine neuronale Netzwerkoperation am effizientesten durchführen, wenn sie eine Faltungsoperation an der Eingabemerkmalskarte 301 unter Verwendung des gesamten verfügbaren Kanals C durchführt. Zum Beispiel kann die NPU-Vorrichtung 10 Hardware-Ressourcen zum Durchführen einer Faltungsoperation als einen verfügbaren Kanal C bereitstellen und kann eine neuronale Netzwerkoperation am effizientesten durchführen, wenn sie eine Faltungsoperation an der Eingabemerkmalskarte 301 unter Verwendung des gesamten verfügbaren Kanals C durchführt. Nach der Ausführungsform aus 6, obwohl die NPU-Vorrichtung 10 16 Kanäle als verfügbare Kanäle C sichert, führt die NPU-Vorrichtung 10 eine Operation an einer Eingabemerkmalskarte, die 4 Kanäle enthält, durch und kann somit eine Faltungsoperation bei 25 % der maximalen Performance durchführen.
  • Die NPU-Vorrichtung 10 kann eine Gewichtungskarte 302 mit einer 3D-Struktur mit einer Anzahl an Kanälen, die der Eingabemerkmalskarte 301 entsprechen, zum Durchführen einer Faltungsoperation an der Eingabemerkmalskarte 301, die beschränkte Kanäle aus den verfügbaren Kanälen C enthält, laden. Die NPU-Vorrichtung 10 kann eine Faltungsoperation an einigen Elementen der Gewichtungskarte 302 und der Eingabemerkmalskarte 301 durchführen, um einen Ausgabewert zu erzeugen, der einem Element in der Ausgabemerkmalskarte entspricht. Bezugnehmend auf 6 kann eine Eingabemerkmalskarte, die 4 Kanäle enthält, 256 (8*8*4) Elemente enthalten und die NPU-Vorrichtung 10 kann eine Faltungsoperation an 36 (3*3*4) Elementen, die der Gewichtungskarte 302 entsprechen, aus 256 (8*8*4) Elementen durchführen, um ein Ausgabemerkmalskartenelement zu erzeugen. In diesem Fall kann die NPU-Vorrichtung 10 eine Faltungsoperation an einem Eingabemerkmalskartenblock in einem Zyklus durchführen. Der Eingabemerkmalskartenblock kann eine Elementleitung enthalten, die in eine Kanalrichtung ausgebildet ist, und die im Eingabemerkmalsblock enthaltene Anzahl an Elementen kann der Anzahl an Kanälen der Eingabemerkmalskarte entsprechen. Bezugnehmend auf 6 kann eine Elementleitung in einer Kanalrichtung in jeder Zeile und jeder Spalte ein Eingabemerkmalskartenblock sein. Die NPU-Vorrichtung 10 kann eine Vektorpunktproduktoperation für neun Zyklen durchführen, um ein Ausgabemerkmalskartenelement basierend auf der Gewichtungskarte 302, die drei Zeilen und drei Spalten enthält, zu erzeugen.
  • Wenn die Eingabemerkmalskarte 301 mit einem beschränkten Kanal konfiguriert ist, kann die NPU-Vorrichtung 10 nach einem Ausführungsbeispiel basierend auf Eingabemerkmalskartenblöcken einen Eingabemerkmalskartenvektor erzeugen und kann eine Ausgabemerkmalskarte unter Verwendung von so vielen Kanälen wie möglich durch Durchführen einer Faltungsoperation an einem Eingabemerkmalskartenvektor erzeugen. Dementsprechend kann die NPU-Vorrichtung nach einem Ausführungsbeispiel eine Ausgabemerkmalskarte durch Durchführen einer Faltungsoperation in weniger Zyklen als wenn eine Faltungsoperation an der Eingabemerkmalskarte 301, die mit einem beschränkten Kanal konfiguriert ist, durchgeführt wird, erzeugen. Nachfolgend wird eine Ausführungsform, in der die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte für eine Eingabemerkmalskarte, die mit einem beschränkten Kanal konfiguriert ist, erzeugt, mit Bezug auf 7 bis 14 beschrieben.
  • 7 ist ein Blockdiagramm einer Konfiguration zum Erzeugen einer Ausgabemerkmalskarte durch Erzeugen eines Eingabemerkmalskartenvektors nach einer Ausführungsform.
  • Bezugnehmend auf 7 kann die NPU-Vorrichtung 10 einen Puffer enthalten und der Puffer kann eine Mehrzahl an Vektorgeneratoren 11 enthalten, die einen Eingabemerkmalskartenvektor IFMV für die erzeugte Eingabemerkmalskarte erzeugen. Die NPU-Vorrichtung 10 kann basierend auf der Anzahl an Kanälen der Eingabemerkmalskarte bestimmen, ob die Mehrzahl an Vektorgeneratoren 11 aktiviert werden soll. Zum Beispiel kann die NPU-Vorrichtung 10 basierend auf einem Verhältnis der Anzahl an Kanälen der Eingabemerkmalskarte zu der Anzahl an verfügbaren Kanälen bestimmen, dass ein Vektorgenerator 11 aktiviert werden soll. Bezugnehmend auf 7, wenn die Anzahl an verfügbaren Kanälen 16 ist und die Anzahl an Kanälen der Eingabemerkmalskarte 4 ist, kann die NPU-Vorrichtung 10 einen ersten Vektorgenerator 11a der vier Vektorgeneratoren 11 aktivieren. Der erste Vektorgenerator 11a kann den Eingabemerkmalskartenvektor IFMV basierend auf einem Eingabemerkmalskartenblock, der einem ersten Kanal bis vierten Kanal entspricht, aus einer Mehrzahl an Eingabemerkmalskartenblöcken erzeugen.
  • Nach einem Ausführungsbeispiel kann eine Mehrzahl an Berechnungsschaltungen 12 einen Eingabemerkmalskartenvektor IFMV vom Vektorgenerator 11 empfangen und kann eine Faltungsoperation an einer Gewichtungskarte, die jeder Berechnungsschaltung 12 entspricht, und dem übertragenen Eingabemerkmalskartenvektor IFMV durchführen. Die Berechnungsschaltungen können eine arithmetische Schaltung oder eine Beschleunigungsschaltung enthalten. Zum Beispiel kann eine erste Berechnungsschaltung 12a einen vom ersten Vektorgenerator 11a erzeugten ersten Eingabemerkmalskartenvektor IFMV1 empfangen und kann eine Ausgabemerkmalskarte durch Durchführen einer Faltungsoperation am ersten Eingabemerkmalskartenvektor IFMV1 und einer Gewichtungskarte erzeugen. Die Anzahl an Kanälen der erzeugten Ausgabemerkmalskarte kann gemäß dem ersten Eingabemerkmalskartenvektor IFMV1 und der Anzahl an Gewichtungskarten, an denen die Faltungsoperation durchgeführt wird, bestimmt werden.
  • Die NPU-Vorrichtung 10 kann eine Mehrzahl an Berechnungsschaltungen 12 enthalten und jede der Berechnungsschaltungen 12 kann eine Mehrzahl an Ausgabemerkmalskarten durch Durchführen einer Faltungsoperation parallel erzeugen. Bezugnehmend auf 7 kann die NPU-Vorrichtung 10 vier Berechnungsschaltungen 12 enthalten und jede der Berechnungsschaltungen 12 kann vier Ausgabemerkmalskarten durch Durchführen einer Faltungsoperation basierend auf unterschiedlichen Gewichtungskarten erzeugen. Zusätzlich kann jede der Berechnungsschaltungen 12 eine Mehrzahl an Ausgabemerkmalskarten basierend auf der Mehrzahl an Gewichtungskarten parallel erzeugen. Zum Beispiel kann die erste Berechnungsschaltung 12a eine erste Ausgabemerkmalskarte bis vierte Ausgabemerkmalskarte basierend auf einer ersten Gewichtungskarte bis vierten Gewichtungskarte erzeugen und auf diese Weise können die vier Berechnungsschaltungen 12 16 Ausgabemerkmalskarten erzeugen.
  • 8 ist eine Ansicht einer Mehrzahl an Eingabemerkmalskartenblöcken BL, die einer Gewichtungskarte einer 3D-Struktur entsprechen, nach einem Ausführungsbeispiel, und 9 ist eine Ansicht des Eingabemerkmalskartenvektors IFMV, der basierend auf der Mehrzahl an Eingabemerkmalskartenblöcken BL erzeugt wird, nach einem Ausführungsbeispiel.
  • 8 stellt lediglich einen Abschnitt einer Eingabemerkmalskarte, in der eine Faltungsoperation zum Erzeugen eines Ausgabemerkmalskartenelements durchgeführt wird, dar. Die Eingabemerkmalskarte kann die Mehrzahl an Eingabemerkmalskartenblöcken BL enthalten und ein Eingabemerkmalskartenblock BL kann eine Elementleitung in einer Kanalrichtung sein, die mindestens ein Eingabemerkmalskartenelement enthält. Die in einem Eingabemerkmalskartenblock BL enthaltene Anzahl an Elementen kann der Anzahl an Kanälen in der Eingabemerkmalskarte entsprechen. Die NPU-Vorrichtung 10 nach einer Vergleichsausführungsform aus 6 kann eine Faltungsoperation an einem Eingabemerkmalskartenblock BL in einem Zyklus durchführen und kann ein Ausgabemerkmalskartenelement aufgrund einer Durchführung der Faltungsoperation für neun Zyklen erzeugen.
  • Bezugnehmend auf 9 kann die NPU-Vorrichtung 10 nach einer Ausführungsform die Mehrzahl an Eingabemerkmalskartenblöcken BL als einen Eingabemerkmalskartenvektor IFMV erzeugen. Wenn zum Beispiel neun Eingabemerkmalskartenblöcke BL1 bis BL9 zum Erzeugen eines Ausgabemerkmalskartenelements erforderlich sind, kann die NPU-Vorrichtung 10 einen Eingabemerkmalskartenvektor IFMV durch Kombinieren der neun Eingabemerkmalskartenblöcke BL1 bis BL9 miteinander erzeugen. Die NPU-Vorrichtung 10 kann eine Faltungsoperation an Elementen, die der Anzahl an verfügbaren Kanälen im erzeugten Eingabemerkmalskartenvektor IFMV entsprechen, für einen Zyklus durchführen. Nach der Ausführungsform aus 9 kann die NPU-Vorrichtung 10 eine Faltungsoperation an den vier Eingabemerkmalskartenblöcken BL1 bis BL4 für einen Zyklus durchführen und kann eine Faltungsoperation für 3 Zyklen durchführen, um eine Faltungsoperation an den neun Eingabemerkmalskartenblöcken BL1 bis BL9 durchzuführen.
  • Nach einem Vergleichsbeispiel weist Hardware der NPU-Vorrichtung 10 die Fähigkeit zum Durchführen einer Faltungsoperation, die der Anzahl an verfügbaren Kanälen entspricht, für einen Zyklus auf, wenn jedoch die Anzahl an Kanälen einer Eingabemerkmalskarte beschränkt ist, kann die NPU-Vorrichtung 10 Faltungsoperationen lediglich an beschränkten Eingabemerkmalskartenelementen durchführen. Dementsprechend ist es notwendig, Faltungsoperationen von vielen Zyklen durchzuführen, um ein Ausgabemerkmalskartenelement zu erzeugen. Nach einer Ausführungsform, wenn die Anzahl an Kanälen in der Eingabemerkmalskarte beschränkt ist, kann die NPU-Vorrichtung 10 den Eingabemerkmalskartenvektor IFMV erzeugen, um eine Faltungsoperation an der Mehrzahl an Eingabemerkmalskartenblöcken BL in einem Zyklus durchzuführen, um eine Faltungsoperation an einem verfügbaren Kanal effizient durchzuführen. Somit kann die NPU-Vorrichtung 10 nach einer Ausführungsform eine Faltungsoperation weniger Zyklen durchführen, um ein Ausgabemerkmalskartenelement zu erzeugen.
  • 10 und 11 sind Ansichten einer Gewichtungskarte und eines Gewichtungskartenvektors nach einer Ausführungsform.
  • Bezugnehmend auf 10 kann die Gewichtungskarte eine Mehrzahl an Gewichtungskartenblöcken WBL enthalten und eine Größe der Gewichtungskarte kann einer Größe einer Eingabemerkmalskarte entsprechen. Eine NPU-Vorrichtung nach einer Ausführungsform kann ferner einen Gewichtungsvektorgenerator enthalten, der dieselbe Operation wie jene des Vektorgenerators 11 durchführt, und ein Gewichtungsvektorgenerator kann mit der gleichen Hardware wie jene des Vektorgenerators 11, der einen Eingabemerkmalskartenvektor erzeugt, um den Gewichtungskartenvektor zu erzeugen, konfiguriert sein, ist jedoch nicht darauf beschränkt und kann mit unterschiedlicher Hardware konfiguriert sein. Die NPU-Vorrichtung 10 kann eine Faltungsoperation durch Multiplizieren eines Eingabemerkmalkartenelements und eines Gewichtungskartenelements an einer entsprechenden Position in einer Eingabemerkmalskarte und einer Gewichtungskarte mit einer 3D-Struktur und Summieren eines Ergebnisses der Multiplikation durchführen. Wie oben in 8 beschrieben, kann die NPU-Vorrichtung 10 eine Faltungsoperation an einem Eingabemerkmalskartenblock BL und einem Gewichtungskartenblock WBL für einen Zyklus durchführen und kann nach der Ausführungsform aus 10 ein Ausgabemerkmalskartenelement aufgrund einer Durchführung einer Faltungsoperation für neun Zyklen erzeugen.
  • Bezugnehmend auf 11 kann die NPU-Vorrichtung 10 einen Gewichtungskartenvektor basierend auf einer Gewichtungskarte auf dieselbe Weise wie ein Erzeugen des Eingabemerkmalskartenvektors IFMV zum Durchführen einer Faltungsoperation mit dem Eingabemerkmalskartenvektor IFMV erzeugen. Zum Beispiel, wenn die NPU-Vorrichtung 10 die neun Eingabemerkmalskartenblöcke BL1 bis BL9 miteinander kombiniert, um einen Eingabemerkmalskartenvektor IFMV zu erzeugen, kann die NPU-Vorrichtung 10 einen Gewichtungskartenvektor durch Verbinden von neun Gewichtungskartenblöcken WBL1 bis WBL9 miteinander in einer Reihenfolge, in der die Eingabemerkmalskartenblöcke BL miteinander verbunden werden, erzeugen. Die NPU-Vorrichtung 10 kann ein Ausgabemerkmalskartenelement durch Durchführen einer Faltungsoperation für die neun Eingabemerkmalskartenblöcke BL1 bis BL9 und die 9 Gewichtungskartenblöcke WBL1 bis WBL9 für drei Zyklen erzeugen.
  • 12 ist ein Blockdiagramm eines Beispiels, in dem der Eingabemerkmalskartenvektor IFMV durch zwei von der Mehrzahl an Vektorgeneratoren 11 erzeugt wird.
  • Bezugnehmend auf 12 kann die NPU-Vorrichtung 10 zwei oder mehr der Mehrzahl an Vektorgeneratoren 11 gemäß der Anzahl an Kanälen einer Eingabemerkmalskarte aktivieren. 7 bis 11 sind Ausführungsbeispiele, die zeigen, dass der Eingabemerkmalskartenvektor IFMV durch Aktivieren von lediglich einem der Mehrzahl an Vektorgeneratoren 11 erzeugt wird. Nach einem in 12 dargestellten Ausführungsbeispiel können jedoch zwei oder mehr der Mehrzahl an Vektorgeneratoren 11 aktiviert werden, um den Eingabemerkmalskartenvektor IFMV zu erzeugen. Jeder der Mehrzahl an Vektorgeneratoren 11 kann einem Kanalbereich entsprechen, der einige der Kanäle der Eingabemerkmalskarte enthält, und die NPU-Vorrichtung 10 kann bestimmen, ob der entsprechende Vektorgenerator 11 gemäß danach, ob ein Eingabemerkmalskartenelement im entsprechenden Kanalbereich vorliegt, aktiviert werden soll. Das heißt, die NPU-Vorrichtung 10 kann basierend auf einem Verhältnis der Anzahl an Kanälen der Eingabemerkmalskarte zu der Anzahl an verfügbaren Kanälen bestimmen, dass der Vektorgenerator 11 aktiviert werden soll. In 12 können zum Beispiel der Vektorgenerator 11a und der Vektorgenerator 11b aktiviert werden, um den Eingabemerkmalskartenvektor IFMV zu erzeugen. Zum Beispiel kann der Vektorgenerator 11a den Eingabemerkmalskartenvektor IFMV1 erzeugen und der Vektorgenerator 11b kann den Eingabemerkmalskartenvektor IFMV2 erzeugen. Somit können der Eingabemerkmalskartenvektor IFMV1 und der Eingabemerkmalskartenvektor IFMV2 kombiniert werden, um den Eingabemerkmalskartenvektor IFMV zu erzeugen. Der Vektorgenerator 11, der den Eingabemerkmalskartenvektor IFMV erzeugt und den erzeugten Eingabemerkmalskartenvektor IFMV an die Berechnungsschaltungen 12 ausgibt, ist oben mit Bezug auf 7 beschrieben worden und somit wird hierin keine ausführliche Beschreibung desselben gegeben.
  • 13 ist eine Ansicht, die eine Eingabemerkmalskarte, welche die Mehrzahl an Eingabemerkmalskartenblöcken BL enthält, nach einem weiteren Ausführungsbeispiel darstellt, das sich von 8 unterscheidet, und 14 ist eine Ansicht des Eingabemerkmalskartenvektors IFMV, der basierend auf der Mehrzahl an Eingabemerkmalskartenblöcken BL nach der Ausführungsform aus 13 erzeugt wird.
  • Bezugnehmend auf 12 und 13, wenn die Anzahl an verfügbaren Kanälen 16 ist und die Anzahl an Kanälen der Eingabemerkmalskarte 5 ist, kann die NPU-Vorrichtung 10 den ersten Vektorgenerator 11a und einen zweiten Vektorgenerator 11b aus den vier Vektorgeneratoren 11 aktivieren. Jeder der vier Vektorgeneratoren 11 kann Eingabemerkmalskartenvektoren IFMV1 bis IFMV4 für einen Kanalbereich einer entsprechenden Eingabemerkmalskarte erzeugen. Zum Beispiel kann in der ersten Eingabemerkmalskarte gemäß 13 der erste Vektorgenerator 11a den ersten Eingabemerkmalskartenvektor IFMV1 basierend auf Eingabemerkmalskartenelementen eines ersten bis vierten Kanals CH1 bis CH2 erzeugen und der zweite Vektorgenerator 11b kann den zweiten Eingabemerkmalskartenvektor IFMV2 basierend auf Eingabemerkmalskartenelementen eines fünften bis achten Kanals CH5 bis CH8 erzeugen. Der erste Vektorgenerator 11a und der zweite Vektorgenerator 11b können den erzeugten ersten Eingabemerkmalskartenvektor IFMV1 und den erzeugten zweiten Eingabemerkmalskartenvektor IFMV2 an die Mehrzahl an Berechnungsschaltungen 12 übertragen.
  • Die Mehrzahl an Berechnungsschaltungen 12 kann eine von der Mehrzahl an Vektorgeneratoren 11 erzeugte Mehrzahl an Eingabemerkmalskartenvektoren IFMV empfangen und kann den Eingabemerkmalskartenvektor IFMV zum Durchführen einer Faltungsoperation durch Kombinieren der Mehrzahl an Eingabemerkmalskartenvektoren IFMV erzeugen. Bezugnehmend auf 14 kann jede der Mehrzahl an Berechnungsschaltungen 12 die Mehrzahl an Eingabemerkmalskartenvektoren IFMV in Einheiten des Eingabemerkmalskartenblocks BL kombinieren, wenn die Mehrzahl an Eingabemerkmalskartenvektoren IFMV empfangen wird. Zum Beispiel kann der Eingabemerkmalskartenvektor IFMV Teileingabemerkmalskartenvektoren IFMV enthalten, die dem Eingabemerkmalskartenblock BL entsprechen, und kann durch unterschiedliche Vektorgeneratoren 11 erzeugte Teileingabemerkmalskartenvektoren IFMV vernetzen.
  • Nach den Ausführungsformen aus 13 und 14 kann der erste Vektorgenerator 11a den ersten Eingabemerkmalskartenvektor IFMV 1 basierend auf den Eingabemerkmalskartenelementen, die dem ersten bis vierten Kanal CH1 bis CH4 im ersten bis neunten Eingabemerkmalskartenblock BL1 bis BL9 entsprechen, erzeugen. In diesem Fall kann der erste Vektorgenerator 11a einen ersten Teileingabemerkmalskartenvektor basierend auf Eingabemerkmalskartenelementen, die einem ersten bis vierten Kanal des ersten Eingabemerkmalskartenblocks BL entsprechen, erzeugen und kann den zweiten bis neunten Teileingabemerkmalskartenvektor auf dieselbe Weise erzeugen.
  • Nach einer Ausführungsform, wenn die Berechnungsschaltung 12 Eingabemerkmalskartenvektoren IFMV, die Teileingabemerkmalskartenvektoren enthalten, von der Mehrzahl an Vektorgeneratoren 11 empfängt, kann die Berechnungsschaltung 12 die Teileingabemerkmalskartenvektoren in Einheiten des Eingabemerkmalskartenblocks BL kombinieren. Zum Beispiel kann die Berechnungsschaltung 12 eine Faltungsoperation durch Kombinieren eines Teileingabemerkmalskartenvektors, der dem ersten bis vierten Kanal CH1 bis CH4 im ersten Eingabemerkmalskartenblock BL1 entspricht, der vom ersten Vektorgenerator 11a empfangen wird, und eines Teileingabemerkmalskartenvektors, der dem fünften bis achten Kanal CH5 bis CH8 im Eingabemerkmalskartenvektorblock BL1 entspricht, der vom zweiten Vektorgenerator 11b empfangen wird, und dann Kombinieren eines Teileingabemerkmalskartenvektors, der dem zweiten Eingabemerkmalskartenblock BL2 entspricht, durchführen. Dementsprechend kann die Berechnungsschaltung 12 eine Faltungsoperation basierend auf den von der Mehrzahl an Vektorgeneratoren 11 erzeugten Eingabemerkmalskartenvektoren IFMV durchführen.
  • Die NPU-Vorrichtung 10 nach einer Ausführungsform ist jedoch nicht auf ein Kombinieren der Eingabemerkmalskartenvektoren IFMV, die von den Vektorgeneratoren 11 in Einheiten des Eingabemerkmalskartenblocks BL nach der Ausführungsform aus 14 empfangen werden, beschränkt, sondern kann die Eingabemerkmalskartenvektoren IFMV in Einheiten des Vektorgenerators 11 kombinieren. Zum Beispiel kann die NPU-Vorrichtung 10 eine Faltungsoperation durch Verbinden des vom zweiten Vektorgenerator 11b empfangenen zweiten Eingabemerkmalskartenvektors IFMV2 mit dem vom ersten Vektorgenerator 11a empfangenen ersten Eingabemerkmalskartenvektor IFMV1 durchführen. Nach einem Ausführungsbeispiel, da die Anzahl an Kanälen einer Gewichtungskarte, an der die Faltungsoperation durchgeführt werden soll, der Anzahl an Kanälen einer Eingabemerkmalskarte entspricht, kann die NPU-Vorrichtung 10 außerdem einen Gewichtungskartenvektor auf dieselbe Weise erzeugen wie das Verfahren zum Erzeugen des Eingabemerkmalskartenvektors IFMV. Darüber hinaus, da ein Verfahren zum Erzeugen eines Gewichtungskartenvektors oben mit Bezug auf 10 und 11 beschrieben worden ist, sind hierin keine ausführlichen Beschreibungen gegeben.
  • 15 ist eine Ansicht einer Ausgabemerkmalskarte, die durch Durchführen einer Faltungsoperation unter Verwendung einer Mehrzahl an Ziel-Gewichtungskarten erzeugt wird, nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 15 kann die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte mit einer Anzahl an Kanälen, die der Anzahl der Gewichtungskarten entspricht, durch Durchführen einer Faltungsoperation an einer Eingabemerkmalskarte und einer Mehrzahl an Gewichtungskarten WM1 bis WM4 erzeugen. Die NPU-Vorrichtung 10 kann eine Ausgabemerkmalskarte durch Durchführen einer Faltungsoperation zwischen der Eingabemerkmalskarte mit einer Gewichtungskarte mit derselben Anzahl an Kanälen wie die Eingabemerkmalskarte erzeugen. Zum Beispiel kann die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte mit vier Kanälen durch Durchführen einer Faltungsoperation mit vier Gewichtungskarten WM1 bis WM4 erzeugen.
  • Hardware der NPU-Vorrichtung 10 nach einer Ausführungsform kann eine ausreichende Berechnung zum Erzeugen von gleich vielen Ausgabemerkmalskarten wie die Anzahl an verfügbaren Kanälen durchführen. Wenn die Anzahl an Gewichtungskarten jedoch beschränkt ist, kann die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte mit weniger Kanälen als die Anzahl an verfügbaren Kanälen erzeugen. Das heißt, in der Ausführungsform nach 15 kann die Hardware der NPU-Vorrichtung 10 eine Ausgabemerkmalskarte mit 16 Kanälen basierend auf 16 Gewichtungskarten erzeugen, die NPU-Vorrichtung 10 kann jedoch eine Ausgabemerkmalskarte mit 4 Kanälen für denselben Zeitraum durch Durchführen einer Faltungsoperation basierend auf 4 Gewichtungskarten erzeugen. Wenn die NPU-Vorrichtung 10 eine Faltungsoperation basierend auf vier Gewichtungskarten wie in der Ausführungsform aus 15 durchführt, da die NPU-Vorrichtung 10 lediglich 25 % der Berechnungsmenge verglichen mit der maximalen Performance verarbeitet, wird die Faltungsoperation ineffizient durchgeführt.
  • Die NPU-Vorrichtung 10 nach einer Ausführungsform kann eine zusätzliche Gewichtungskarte erzeugen, die eine Gewichtung aufweist, die zu jener einer Ziel-Gewichtungskarte, die eine bereits bestehende Gewichtungskarte ist, identisch ist, und kann die Hardware der NPU-Vorrichtung 10 durch Durchführen einer Faltungsoperation an Eingabegewichtungskartenblöcken mit unterschiedlichen Ziel-Gewichtungskarten und zusätzlichen Gewichtungskarten effizient verwenden.
  • 16 ist ein Blockdiagramm einer Konfiguration zum Erzeugen einer Ausgabemerkmalskarte basierend auf einer zusätzlichen Gewichtungskarte nach einer Ausführungsform.
  • Bezugnehmend auf 16, wenn eine Anzahl an Ziel-Gewichtungskarten kleiner ist als eine Bezugsanzahl, kann die in einem Puffer der NPU-Vorrichtung 10 enthaltene Mehrzahl an Vektorgeneratoren 11 unterschiedliche Eingabemerkmalskartenblöcke BL an die Berechnungsschaltung 12, die eins-zu-eins entsprechen, übermitteln. Wenn die Vektorgeneratoren 11 bestimmen, dass die Anzahl an Kanälen einer Eingabemerkmalskarte größer ist als die Anzahl an Bezugskanälen, oder bestimmen, dass eine tiefenartige Faltungsoperation nicht durchgeführt wird, erzeugen die Vektorgeneratoren 11 womöglich keinen Eingabemerkmalskartenvektor IFMV durch Zusammenführen von mindestens einigen der Mehrzahl an Eingabemerkmalskartenblöcken BL. Mit anderen Worten können die Vektorgeneratoren 11 unterschiedliche Eingabemerkmalskartenblöcke BL aus den Eingabemerkmalskartenblöcken BL an die Berechnungsschaltung 12, die jedem Vektorgenerator 11 entspricht, übermitteln. Wenn die Vektorgeneratoren 11 bestimmen, dass die Anzahl an Kanälen der Eingabemerkmalskarte kleiner oder gleich der Anzahl an Bezugskanälen ist, oder wenn die Vektorgeneratoren 11 bestimmen, dass eine tiefenartige Faltungsoperation durchgeführt wird, können die Vektorgeneratoren 11 Eingabemerkmalskartenvektoren IFMV basierend auf mindestens einigen der Mehrzahl an Eingabemerkmalskartenblöcken BL erzeugen und können die Eingabemerkmalskartenvektoren IFMV an die Berechnungsschaltung 12 übermitteln.
  • Nach einem Vergleichsbeispiel kann die NPU-Vorrichtung 10 basierend auf der Anzahl an Ziel-Gewichtungskarten eine zu aktivierende Berechnungsvorrichtung aus einer Mehrzahl an Berechnungsvorrichtungen bestimmen. Zum Beispiel kann jede Berechnungsschaltung 12 eine Faltungsoperation an einer Mehrzahl an Gewichtungskarten parallel durchführen. Jede Berechnungsschaltung 12 kann eine Faltungsoperation an vier Gewichtungskarten durchführen und wenn die Anzahl an Ziel-Gewichtungskarten, für welche die Faltungsoperation parallel durchgeführt werden soll, 4 oder weniger ist, kann die NPU-Vorrichtung 10 jede beliebige der vier Berechnungsschaltungen 12 aktivieren, um die Faltungsoperation durchzuführen. Das heißt, die NPU-Vorrichtung 10 nach dem Vergleichsbeispiel deaktiviert die verbleibenden drei Berechnungsschaltungen 12 und erzeugt eine Ausgabemerkmalskarte durch eine Berechnungsschaltung 12, sodass es bis zu vier Mal so lange dauern kann wie verglichen mit einem Fall, in dem alle Berechnungsschaltungen 12 aktiviert sind.
  • Nach einer Ausführungsform kann die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte unter Verwendung der Berechnungsschaltung 12, die im Vergleichsbeispiel deaktiviert ist, durch Erzeugen von mindestens einer zusätzlichen Gewichtungskarte, die eine Gewichtung aufweist, die zu jener einer Ziel-Gewichtungskarte identisch ist, erzeugen. Die erzeugte zusätzliche Gewichtungskarte kann derart verteilt werden, dass eine Faltungsoperation in den Berechnungsschaltungen 12 durchgeführt wird, die sich von den Berechnungsschaltungen 12, die eine Faltungsoperation der Ziel-Gewichtungskarte durchführen, unterscheiden, und Eingabemerkmalskartenblöcke BL oder Eingabemerkmalskartenvektoren IFMV, die jeweils von der Mehrzahl an Vektorgeneratoren 11 an die Berechnungsschaltungen 12 übertragen werden, können unterschiedliche Eingabemerkmalskartenelemente enthalten.
  • Gemäß 15 und 16, wenn die Anzahl an Ziel-Gewichtungskarten 4 ist und die Anzahl an verfügbaren Kanälen in der Ausgabemerkmalskarte 16 ist, kann Hardware der NPU-Vorrichtung 10 in einem Zustand sein, der zum Durchführen einer Faltungsoperation an 16 Gewichtungskarten imstande ist. Die NPU-Vorrichtung 10 kann 12 zusätzliche Gewichtungskarten durch Erzeugen von drei zusätzlichen Gewichtungskarten, die jeweils eine Gewichtung aufweisen, die zu jener der 4 Ziel-Gewichtungskarten identisch ist, erzeugen. Dementsprechend können 16 Gewichtungskarten, die 3 zusätzliche Gewichtungskarten und eine Ziel-Gewichtungskarte enthalten, für jede der vier Berechnungsschaltungen 12 bereitgestellt werden und die Mehrzahl an Berechnungsschaltungen 12 kann 16 Ausgabeschaltungskartenelemente erzeugen, während die Vergleichsausführungsform 4 Ausgabeschaltungskartenelemente basierend auf den bereitgestellten Gewichtungskarten erzeugt. Zu dieser Zeit, da sich die Eingabemerkmalskartenblöcke BL oder die Eingabemerkmalskartenvektoren IFMV, die jeweils von den Berechnungsschaltungen 12 empfangen werden, voneinander unterscheiden, können die vier Berechnungsschaltungen 12 16 unterschiedliche Ausgabeschaltungskartenelemente erzeugen.
  • 17 ist eine Ansicht von Gewichtungskartensätzen, die nach einem Ausführungsbeispiel erzeugte zusätzliche Gewichtungskarten enthalten, und 18 ist eine Ansicht einer Ausgabemerkmalskarte, die durch einen Gewichtungskartensatz, der zusätzliche Gewichtungskarten enthält, erzeugt wird.
  • Bezugnehmend auf 17 kann eine zusätzliche Gewichtungskarte, die einer Ziel-Gewichtungskarte entspricht, basierend auf der Anzahl an verfügbaren Kanälen der Ausgabemerkmalskarte erzeugt werden. Die NPU-Vorrichtung 10 kann eine zusätzliche Gewichtungskarte durch Bestimmen, ob eine zusätzliche Gewichtungskarte während eines Inferenzprozesses zum Erzeugen von abgeleiteten Daten erzeugt werden soll, basierend auf Eingabedaten erzeugen. Die NPU-Vorrichtung 10 nach einer Ausführungsform kann jedoch basierend auf der während eines Trainingsprozesses zum Erzeugen einer Gewichtungskarte erzeugten Anzahl an Gewichtungskarten bestimmen, ob eine zusätzliche Gewichtungskarte erzeugt werden soll.
  • Die NPU-Vorrichtung 10 kann eine zusätzliche Gewichtungskarte derart erzeugen, dass die Anzahl an Ziel-Gewichtungskarten und zusätzlichen Gewichtungskarten eine maximale Anzahl wird, die kleiner oder gleich der Anzahl an verfügbaren Kanälen der Ausgabemerkmalskarte ist. Wenn zum Beispiel die Anzahl an verfügbaren Kanälen der Ausgabemerkmalskarte 16 ist und die Anzahl an Gewichtungskarten 4 ist, da ein Maximum von 12 zusätzlichen Gewichtungskarten erzeugt werden kann, kann die NPU-Vorrichtung 10 jeweils drei zusätzliche Gewichtungskarten für vier Ziel-Gewichtungskarten erzeugen. Eine Gewichtungskarte, in der eine Ziel-Gewichtungskarte und eine zusätzliche Gewichtungskarte unterschiedliche Gewichtungen aufweisen, kann für jede Berechnungsschaltung 12 als ein Gewichtungskartensatz bereitgestellt werden. Somit kann der Gewichtungskartensatz, der für jede Berechnungsschaltung 12 bereitgestellt ist, ein Gewichtungskartensatz mit einer Gewichtungskarte sein, die jener des Gewichtungskartensatzes, der für die anderen Berechnungsschaltungen 12 bereitgestellt ist, gleich ist.
  • Bezugnehmend auf 17 und 18 kann die NPU-Vorrichtung 10 eine Ausgabemerkmalskarte basierend auf einer Ziel-Gewichtungskarte und einer zusätzlichen Gewichtungskarte erzeugen. Zum Beispiel kann die NPU-Vorrichtung 10 einen ersten Ausgabemerkmalskartenblock O1 durch Durchführen einer Faltungsoperation an ersten Eingabemerkmalskartenblöcken I1 in Eingabemerkmalskarten und einem ersten Gewichtungskartensatz SET1 erzeugen. Zum Beispiel können die ersten Eingabemerkmalskartenblöcke I1 Eingabemerkmalskartenblöcke sein, die einer ersten Zeile und einer ersten Spalte, einer ersten Zeile und einer zweiten Spalte, einer zweiten Zeile und einer ersten Spalte und einer zweiten Zeile und einer zweiten Spalte in einer 3*3-Eingabemerkmalskarte entsprechen, und die erste Berechnungsschaltung 12a kann einen ersten Eingabemerkmalskartenblock I1 vom ersten Vektorgenerator 11a empfangen. Die erste Berechnungsschaltung 12, die den ersten Eingabemerkmalskartenblock I1 empfängt, kann den ersten Ausgabemerkmalskartenblock O1 basierend auf dem ersten Gewichtungskartensatz SET1 erzeugen. Auf diese Weise können eine zweite Berechnungsschaltung 12b bis vierte Berechnungsschaltung 12d einen zweiten Ausgabemerkmalskartenblock O2 bis vierten Ausgabemerkmalskartenblock O4 durch paralleles Durchführen einer Faltungsoperation basierend auf zweiten Eingabemerkmalskartenblöcken I2 bis vierten Eingabemerkmalskartenblöcken I4 erzeugen.
  • 18 stellt ein Erzeugen eines Ausgabemerkmalskartenblocks ohne ein Erzeugen des Eingabemerkmalskartenvektors IFMV für Eingabemerkmalskartenblöcke dar. Wenn jedoch die Anzahl an Kanälen einer Eingabemerkmalskarte wie oben in 7 bis 14 beschränkt ist, kann die NPU-Vorrichtung 10 eine Faltungsoperation basierend auf Gewichtungskarten, die eine zusätzliche Gewichtungskarte enthalten, durch erzeugen des Eingabemerkmalskartenvektors IFMV durchführen. Mit anderen Worten werden der Prozess in dem Fall, in dem der Kanal der Eingabemerkmalskarte in 7 bis 14 beschränkt ist, und der Prozess in dem Fall, in dem der Kanal der Ausgabemerkmalskarte in 15 bis 18 beschränkt ist, separat beschrieben. Wenn jedoch die Anzahl an Kanälen der Eingabemerkmalskarte und die Anzahl an Kanälen der Ausgabemerkmalskarte beschränkt sind, kann die NPU-Vorrichtung 10 nach einer Ausführungsform eine Ausgabemerkmalskarte durch Durchführen beider Prozesse erzeugt werden.
  • 19 ist eine Ansicht einer Eingabemerkmalskarte, welche die Mehrzahl an Eingabemerkmalskartenblöcken BL enthält, wenn eine tiefenartige Faltungsoperation durchgeführt wird, und 20 ist eine Ansicht einer Konfiguration der Berechnungsschaltung 12 eines Vergleichsbeispiels zum Durchführen einer tiefenartigen Faltungsoperation.
  • Bezugnehmend auf 19 kann die NPU-Vorrichtung 10 des erfinderischen Konzepts den Eingabemerkmalskartenvektor IFMV erzeugen, wenn eine tiefenartige Faltungsoperation angefordert wird, selbst wenn eine Anzahl an Kanälen einer Eingabemerkmalskarte gleich einer verfügbaren Anzahl an Kanälen der NPU-Vorrichtung 10 ist. Die tiefenartige Faltungsoperation kann ein Verfahren zum Berechnen eines neuronalen Netzwerks sein, das die Berechnungsmenge reduziert und eine Operation in Echtzeit aktiviert. Die tiefenartige Faltungsoperation kann ein Durchführen einer Faltungsoperation nach einem Erzeugen einer Gewichtungskarte einer 2D-Struktur durch Trennen eines jeden Kanals von einer Gewichtungskarte einer 3D-Struktur bedeuten. Mit anderen Worten, wenn die NPU-Vorrichtung 10 die tiefenartige Faltungsoperation durchführt, führt die NPU-Vorrichtung 10 womöglich keine Faltung in einer Kanalrichtung durch, sondern kann lediglich eine Faltungsoperation in einer räumlichen Richtung durchführen.
  • Bezugnehmend auf 20, wenn die NPU-Vorrichtung 10 nach dem Vergleichsbeispiel eine tiefenartige Faltungsoperation durchführt, kann jede Berechnungsschaltung 12 eine Ausgabemerkmalskarte für einen Eingabemerkmalskartenblock BL durch Durchführen einer Faltungsoperation zu unterschiedlichen Zeitpunkten basierend auf Gewichtungskarten mit unterschiedlichen Gewichtungen erzeugen. Wenn zum Beispiel der erste Eingabemerkmalskartenblock BL1 an die vier Berechnungsschaltungen 12 übermittelt wird, kann die NPU-Vorrichtung 10 eine Faltungsoperation an einem ersten Kanalbereich des ersten Eingabemerkmalskartenblocks BL1 und einem ersten Gewichtungskartensatz durch Aktivieren der ersten Berechnungsschaltung 12a zu einem ersten Zeitpunkt durchführen. Zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt kann die NPU-Vorrichtung 10 eine Faltungsoperation an einem zweiten Kanalbereich des ersten Eingabemerkmalskartenblocks BL1 und einem zweiten Gewichtungskartensatz durch Aktivieren der zweiten Berechnungsschaltung 12b. durchführen. Auf diese Weise kann die NPU-Vorrichtung 10 eine Mehrzahl an Ausgabemerkmalskartenblockelementen für den ersten Eingabemerkmalskartenblock BL durch Durchführen einer Faltungsoperation für einen dritten und vierten Kanalbereich in der dritten Berechnungsschaltung 12c und der vierten Berechnungsschaltung 12d jeweils zu einem dritten Zeitpunkt und einem vierten Zeitpunkt ausgeben. Zum Beispiel kann der erste Kanalbereich ein erster bis vierter Kanal CH1 bis CH4 sein und der vierte Kanalbereich kann ein dreizehnter bis sechzehnter Kanal CH13 bis CH16 sein.
  • In diesem Fall kann die Anzahl an Ausgabemerkmalskartenelementen der in der Mehrzahl an Berechnungsschaltungen 12 enthaltenen Anzahl an Gewichtungskarten entsprechen und kann der Anzahl an Kanälen einer Eingabemerkmalskarte entsprechen, wenn eine tiefenartige Faltung durchgeführt wird. Das heißt, die Anzahl an Kanälen einer Eingabemerkmalskarte kann dieselbe sein wie die Anzahl an Kanälen einer Ausgabemerkmalskarte.
  • Nach einem Vergleichsbeispiel führt die NPU-Vorrichtung 10 eine Operation durch Aktivieren von lediglich einer Berechnungsschaltung und Deaktivieren der verbleibenden Berechnungsschaltungen durchführen, während Ausgabemerkmalskartenelemente für einen Eingabemerkmalskartenblock BL erzeugt wird. Andererseits kann die NPU-Vorrichtung 10 einer Ausführungsform eine Mehrzahl an Merkmalskarten während derselben Zeit durch Durchführen einer Faltungsoperation an einem zweiten Eingabemerkmalskartenblock BL2 zu einem Zeitpunkt, in dem eine Faltungsoperation an einem ersten Eingabemerkmalskartenblock BL1 durchgeführt wird, erzeugen/ausgeben.
  • 21 ist ein Blockdiagramm, das eine Konfiguration zum Erzeugen einer Ausgabemerkmalskarte durch Erzeugen des Eingabemerkmalskartenvektors IFMV zeigt, wenn eine tiefenartige Faltungsoperation durchgeführt wird, und 22 ist eine Ansicht eines Eingabemerkmalskartenvektors IFMV, der auf demselben Kanalbereich in einer Mehrzahl an Eingabemerkmalskartenblöcken BL erzeugt wird, wenn eine tiefenartige Faltungsoperation durchgeführt wird.
  • Bezugnehmend auf 21 kann eine Mehrzahl an Vektorgeneratoren 11 den Eingabemerkmalskartenvektor IFMV basierend auf einem Eingabemerkmalskartenelement, das einem Teilkanalbereich in der Mehrzahl an Eingabemerkmalskartenblöcken BL1 bis BL9 entspricht, erzeugen. Ausführlicher kann jeder Vektorgenerator 11 den Eingabemerkmalskartenvektor IFMV mit Eingabemerkmalskartenelementen, die einem voreingestellten Kanalbereich entsprechen, erzeugen. Bezugnehmend auf 22 kann der erste Vektorgenerator 11a den ersten Eingabemerkmalskartenvektor IFMV1 durch Verbindung von Eingabemerkmalskartenelementen, die dem ersten bis vierten Kanal CH1 bis CH4 im ersten bis neunten Eingabemerkmalskartenblöcken BL1 bis BL9 entsprechen, erzeugen. Auf dieselbe Weise wie in der Ausführungsform aus 19 können in einer Situation, in der alle Kanäle einer Eingabemerkmalskarte vollständige bis verfügbare Kanäle sind, vier Eingabemerkmalskartenvektoren IFMV1 bis IFMV4 jeweils aus den vier Vektorgeneratoren 11 erzeugt werden.
  • Nach einem Vergleichsbeispiel, da derselbe Eingabemerkmalskartenblock BL an jede der Berechnungsschaltungen 12 übermittelt wird, ist es notwendig, zu warten, bis einige der Eingabemerkmalskartenblöcke BL durch jede der Berechnungsschaltungen 12 gefaltet werden. Umgekehrt kann jeder der Vektorgeneratoren 11 nach einer Ausführungsform die Eingabemerkmalskartenvektoren IFMV1 bis IFMV4, die jeweils den unterschiedlichen Kanalbereichen entsprechen, an eine entsprechende Berechnungsschaltung 12 übermitteln.
  • 23 ist eine Ansicht, die eine Mehrzahl an Berechnungsschaltungen 12 zeigt, die eine tiefenartige Faltungsoperation nach der Ausführungsform aus 21 durchführen.
  • Bezugnehmend auf 23 kann die NPU-Vorrichtung 20 im Gegensatz zum Vergleichsbeispiel aus 20 eine Faltungsoperation an einer Mehrzahl an Eingabemerkmalskartenblöcken BL ohne einen Zeitraum durchführen, in dem die Berechnungsschaltungen 12 deaktiviert sind. Die Berechnungsschaltungen 12 können jeweils Eingabemerkmalskartenvektoren IFMV von entsprechenden Vektorgeneratoren 11 empfangen. Die Eingabemerkmalskartenvektoren IFMV können jeweils Eingabemerkmalskartenelemente desselben Kanalbereichs in der Mehrzahl an Eingabemerkmalskartenblöcken BL enthalten, wie oben mit Bezug auf 22 beschrieben.
  • Die Berechnungsschaltungen 12 der NPU-Vorrichtung 10 können eine Faltungsoperation an den Eingabemerkmalskartenvektoren IFMV zu allen Zeitpunkten durchführen, um jeweils Ausgabe-Merkmalskartenelemente für die Mehrzahl an Eingabemerkmalskartenblöcken BL zu erzeugen. Zum Beispiel können die Berechnungsschaltungen 12 den ersten bis vierten Eingabemerkmalskartenvektor IFMV1 bis IFMV4, die jeweils für unterschiedliche Kanalbereich erzeugt werden, basierend auf dem ersten bis vierten Eingabemerkmalskartenblock BL1 bis BL4 empfangen. Die erste Berechnungsschaltung 12a, die den ersten Eingabemerkmalskartenvektor IFMV1 empfängt, kann eine Faltungsoperation an Eingabemerkmalskartenelementen, die dem ersten bis vierten Kanal CH1 bis CH4, im ersten Eingabemerkmalskartenblock BL zu einem ersten Zeitpunkt durchführen. Auf dieselbe Weise können die zweite Berechnungsschaltung 12b bis vierte Berechnungsschaltung 12d eine Faltungsoperation am fünften bis achten Kanal CH5 bis CH8, neunten bis 12-ten Kanal CH9 bis CH12 und dreizehnten bis sechzehnten Kanal CH13 bis CH16 im ersten Eingabemerkmalskartenblock BL1 zum ersten Zeitpunkt durchführen. Das heißt, eine von durch der NPU-Vorrichtung 10 nach einem Vergleichsbeispiel zu einem zweiten Zeitpunkt bis vierten Zeitpunkt durchgeführt Faltungsoperation kann von der NPU-Vorrichtung 10 nach einer Ausführungsform des erfinderischen Konzepts zum ersten Zeitpunkt durchgeführt werden.
  • Wenn die NPU-Vorrichtung 10 nach der Vergleichsausführungsform eine tiefenartige Faltungsoperation an einer Eingabemerkmalskarte, die 16 Kanäle enthält, nach der Ausführungsform aus 19 basierend auf 16 Gewichtungskarten durchführt, kann die NPU-Vorrichtung 10 16 Ausgabemerkmalskartenelemente für einen Eingabemerkmalskartenblock BL während vier Zeitpunkten erzeugen. Andererseits muss die NPU-Vorrichtung 10 des erfinderischen Konzepts lediglich eine Faltungsoperation für einen Zeitpunkt durchführen, um 16 Ausgabemerkmalskartenelement, die zu jenen der Vergleichsausführungsform identisch sind, durch Erzeugen des Eingabemerkmalskartenvektors IFMV zu erzeugen, und kann 64 Ausgabemerkmalskartenelemente für 4 Eingabemerkmalskartenblöcke BL während vier Zeitpunkten erzeugen.
  • Nach einem oder mehreren Ausführungsbeispielen der Offenbarung können eine oder mehrere Komponenten oder Elemente der NPU-Vorrichtung als eine Hardware umgesetzt sein. Die Offenbarung ist jedoch nicht darauf beschränkt und somit können nach einem Ausführungsbeispiel eine oder mehrere Komponenten oder Elemente der NPU-Vorrichtung als eine Software oder eine Kombination aus einer Hardware und Software umgesetzt sein. Zum Beispiel können nach einem Ausführungsbeispiel der Vektorgenerator, der Gewichtungsvektorgenerator etc. jeweils durch eine Hardware, ein Softwaremodul oder eine Kombination aus Hardware und Software umgesetzt werden.
  • Obwohl das erfinderische Konzept mit Bezug auf Ausführungsbeispiele desselben besonders gezeigt und beschrieben worden ist, versteht es sich, dass verschiedene Änderungen in Form und Details darin vorgenommen werden können, ohne dabei von der Idee und dem Umfang der nachfolgenden Ansprüche abzuweichen.
  • 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
    • KR 1020200174731 [0001]

Claims (20)

  1. Verfahren zum Erzeugen einer Ausgabemerkmalskarte basierend auf einer Eingabemerkmalskarte, wobei das Verfahren aufweist: Erzeugen eines Eingabemerkmalskartenvektors für eine Mehrzahl an Eingabemerkmalskartenblöcken basierend darauf, dass eine Anzahl an Kanälen der Eingabemerkmalskarte kleiner ist als eine Anzahl an Bezugskanälen; Durchführen einer Faltungsoperation zwischen der Eingabemerkmalskarte und Gewichtungskarten, die eine oder mehrere Ziel-Gewichtungskarten und eine oder mehrere zusätzliche Gewichtungskarten mit Gewichtungen, die zu der einen oder den mehreren Ziel-Gewichtungskarten identisch sind, enthalten, basierend darauf, dass eine Anzahl der einen oder der mehreren Ziel-Gewichtungskarten kleiner ist als eine Bezugsanzahl; und Erzeugen einer Ausgabemerkmalskarte basierend auf der Faltungsoperation.
  2. Verfahren nach Anspruch 1, wobei der Eingabemerkmalskartenvektor Vektorinformation ist, die basierend auf der Mehrzahl an Eingabemerkmalskartenblöcken erzeugt wird, die einer Größe einer Gewichtungskarte in einer dreidimensionalen (3D) Eingabemerkmalskarte entsprechen, .
  3. Verfahren nach Anspruch 2, wobei jeder der Eingabemerkmalskartenblöcke aufweist: einen Datenblock, der einem oder mehreren Kanälen, in denen ein Eingabewert existiert, aus einer Mehrzahl an verfügbaren Kanälen entspricht, und wobei das Erzeugen des Eingabemerkmalskartenvektors aufweist: Erzeugen eines jeden der Mehrzahl an Eingabemerkmalskartenblöcken als einen Teil-Eingabemerkmalskartenvektor.
  4. Verfahren nach Anspruch 3, wobei das Erzeugen des Eingabemerkmalskartenvektors aufweist: Erzeugen des Eingabemerkmalskartenvektors durch Kombinieren einer Mehrzahl an Teil-Eingabemerkmalskartenvektoren, die jedem der Mehrzahl an Eingabemerkmalskartenblöcken entsprechen, in einer Reihenfolge der Faltungsoperationen.
  5. Verfahren nach Anspruch 4, wobei eine Länge des Eingabemerkmalskartenvektors basierend auf einem Verhältnis der Anzahl des einen oder der mehreren Kanäle, in denen der Eingabewert existiert, zu einer Anzahl an verfügbaren Kanälen bestimmt wird.
  6. Verfahren nach Anspruch 2, wobei das Erzeugen des Eingabemerkmalskartenvektors aufweist: Erzeugen des Eingabemerkmalskartenvektors als ein Eingabewert, der einem identischen Kanal entspricht, in der Mehrzahl an Eingabemerkmalskartenblöcken basierend auf einer Bestimmung, eine tiefenartige Faltungsoperation durchzuführen.
  7. Verfahren nach Anspruch 2, wobei das Durchführen der Faltungsoperation aufweist: Erzeugen eines Gewichtungsvektors mit einer Größe, die dem Eingabemerkmalskartenvektor entspricht, aus den Gewichtungskarten; und Durchführen einer Skalarproduktoperation an dem Gewichtungsvektor und dem Eingabemerkmalskartenvektor.
  8. Verfahren nach Anspruch 1, wobei das Durchführen der Faltungsoperation aufweist: Erzeugen der einen oder der mehreren zusätzlichen Gewichtungskarten mit den Gewichtungen, die zu der einen oder den mehreren Ziel-Gewichtungskarten identisch sind, basierend darauf, dass eine Anzahl an Ziel-Gewichtungskarten kleiner ist als die Bezugsanzahl.
  9. Verfahren nach Anspruch 8, wobei das Erzeugen der einen oder der mehreren zusätzlichen Gewichtungskarten aufweist: Bestimmen einer Anzahl an zu erzeugenden zusätzlichen Gewichtungskarten basierend auf einem Verhältnis der Anzahl der einen oder der mehreren Ziel-Gewichtungskarten zu einer Anzahl an verfügbaren Kanälen.
  10. Verfahren nach Anspruch 8, wobei das Durchführen der Faltungsoperation aufweist: Durchführen, durch die eine oder die mehreren Ziel-Gewichtungskarten und die eine oder die mehreren zusätzlichen Gewichtungskarten, einer Faltungsoperation an unterschiedlichen Eingabemerkmalskartenblöcken in der Eingabemerkmalskarte.
  11. Neuronale-Verarbeitungseinheits(NPU)-Vorrichtung, aufweisend: einen Vektorgenerator, der konfiguriert ist, einen Eingabemerkmalskartenvektor für eine Mehrzahl an Eingabemerkmalskartenblöcken basierend darauf zu erzeugen, dass eine Anzahl an Kanälen einer Eingabemerkmalskarte kleiner ist als eine Anzahl an Bezugskanälen; und eine Berechnungsschaltung, die konfiguriert ist eine Faltungsoperation zwischen einem von dem Eingabemerkmalskartenvektor oder der Mehrzahl an Eingabemerkmalskartenblöcken und Gewichtungskarten, die eine oder mehrere Ziel-Gewichtungskarten und eine oder mehrere zusätzliche Gewichtungskarten mit einer Gewichtung, die zu der einen oder den mehreren Ziel-Gewichtungskarten identisch ist, enthalten, basierend darauf durchzuführen, dass eine Anzahl der einen oder der mehreren Ziel-Gewichtungskarten kleiner ist als eine Bezugsanzahl, und eine Ausgabemerkmalskarte basierend auf einem Ergebnis der Faltungsoperation zu erzeugen.
  12. NPU-Vorrichtung nach Anspruch 11, wobei der Eingabemerkmalskartenvektor Vektorinformation ist, die basierend auf der Mehrzahl an Eingabemerkmalskartenblöcken, die einer Größe einer Gewichtungskarte entsprechen, in einer dreidimensionalen (3D) Eingabemerkmalskarte erzeugt wird.
  13. NPU-Vorrichtung nach Anspruch 12, wobei der Vektorgenerator den Eingabemerkmalskartenvektor basierend auf einer Bestimmung, eine tiefenartige Faltungsoperation durchzuführen, als einen Eingabewert, der einem identischen Kanal entspricht, in der Mehrzahl an Eingabemerkmalskartenblöcken erzeugt.
  14. NPU-Vorrichtung nach Anspruch 11, ferner aufweisend: einen Gewichtungskartengenerator, der konfiguriert ist, die eine oder die mehreren zusätzlichen Gewichtungskarten mit der Gewichtung, die zu der einen oder den mehreren Ziel-Gewichtungskarten identisch ist, basierend darauf zu erzeugen, dass eine Anzahl der Ziel-Gewichtungskarten kleiner ist als die Bezugsanzahl.
  15. NPU-Vorrichtung nach Anspruch 14, wobei die Berechnungsschaltung basierend auf der einen oder den mehreren Ziel-Gewichtungskarten und der einen oder den mehreren zusätzlichen Gewichtungskarten eine Faltungsoperation an unterschiedlichen Eingabemerkmalskartenblöcken in der Eingabemerkmalskarte durchführt.
  16. Betriebsverfahren einer Neuronale-Verarbeitungseinheits(NPU)-Vorrichtung, die eine Faltungsoperation basierend auf einer Faltungsoperationsplanung durchführt, wobei das Betriebsverfahren aufweist: Einstellen der Faltungsoperationsplanung basierend darauf, dass mindestens eine einer Anzahl an Kanälen einer Eingabemerkmalskarte und einer Anzahl an Kanälen einer Ausgabemerkmalskarte kleiner ist als eine Anzahl an Bezugskanälen; Durchführen einer Faltungsoperation einer Gewichtungskarte an der Eingabemerkmalskarte basierend auf der eingestellten Faltungsoperationsplanung; und Erzeugen der Ausgabemerkmalskarte basierend auf der Faltungsoperation.
  17. Betriebsverfahren nach Anspruch 16, wobei das Einstellen der Faltungsoperationsplanung aufweist: Erzeugen eines Eingabemerkmalskartenvektors für eine Mehrzahl an Eingabemerkmalskartenblöcken basierend darauf, dass die Anzahl an Kanälen der Eingabemerkmalskarte kleiner ist als eine Anzahl an ersten Bezugskanälen; und Einstellen der Faltungsoperationsplanung basierend auf einer Länge des Eingabemerkmalskartenvektors in Bezug auf eine Anzahl an verfügbaren Kanälen.
  18. Betriebsverfahren nach Anspruch 16, wobei das Einstellen der Faltungsoperationsplanung aufweist: Erzeugen des Eingabemerkmalskartenvektors als einen Eingabewert, der einem identischen Kanal entspricht, in einer Mehrzahl an Eingabemerkmalskartenblöcken basierend auf einer Bestimmung, eine tiefenartige Faltungsoperation durchzuführen.
  19. Betriebsverfahren nach Anspruch 16, wobei das Einstellen der Faltungsoperationsplanung aufweist: Erzeugen von einer oder mehreren zusätzlichen Gewichtungskarten mit einer Gewichtung, die zu einer Ziel-Gewichtungskarte identisch ist, basierend darauf, dass die Anzahl an Kanälen der Ausgabemerkmalskarte kleiner ist als eine Anzahl an zweiten Bezugskanälen; und Einstellen der Faltungsoperationsplanung für die Ziel-Gewichtungskarte und die eine oder die mehreren zusätzlichen Gewichtungskarten, um eine Faltungsoperation an unterschiedlichen Eingabemerkmalskartenblöcken durchzuführen.
  20. Betriebsverfahren nach Anspruch 19, wobei, wenn die Ziel-Gewichtungskartenanzahlen kleiner sind als die zweite Bezugsanzahl, mehr Kanäle der Ausgabemerkmalskarte als die Anzahl an Ziel-Gewichtungskarten durch Erzeugen der einen oder der mehreren zusätzlichen Gewichtungskarten erzeugt werden.
DE102021121299.5A 2020-12-14 2021-08-17 NPU-Vorrichtung, die eine Faltungsoperation basierend auf der Anzahl an Kanälen durchführt, und Betriebsverfahren derselben Pending DE102021121299A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200174731A KR20220084845A (ko) 2020-12-14 2020-12-14 채널 수에 기초하여 컨볼루션 연산을 수행하는 npu 장치 및 이의 동작 방법
KR10-2020-0174731 2020-12-14

Publications (1)

Publication Number Publication Date
DE102021121299A1 true DE102021121299A1 (de) 2022-06-15

Family

ID=81749817

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021121299.5A Pending DE102021121299A1 (de) 2020-12-14 2021-08-17 NPU-Vorrichtung, die eine Faltungsoperation basierend auf der Anzahl an Kanälen durchführt, und Betriebsverfahren derselben

Country Status (5)

Country Link
US (1) US20220188612A1 (de)
KR (1) KR20220084845A (de)
CN (1) CN114626515A (de)
DE (1) DE102021121299A1 (de)
TW (1) TW202230227A (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116029332B (zh) * 2023-02-22 2023-08-22 南京大学 一种基于lstm网络的片上微调方法及装置

Also Published As

Publication number Publication date
US20220188612A1 (en) 2022-06-16
CN114626515A (zh) 2022-06-14
TW202230227A (zh) 2022-08-01
KR20220084845A (ko) 2022-06-21

Similar Documents

Publication Publication Date Title
DE102020101187A1 (de) Winograd-transformationsfaltungsoperation für neuronale netze
DE102018108324A1 (de) System und Verfahren zur Schätzung eines optischen Flusses
DE102018126670A1 (de) Fortschreitende Modifizierung von generativen adversativen neuronalen Netzen
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE112020003128T5 (de) Dilatierte faltung mit systolischem array
DE102019133028A1 (de) Für neuronale netzwerke geeignetes effizientes matrixformat
CN109191382A (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
DE102019107928A1 (de) Generative Modellierung von neuronalen Netzen zum Transformieren von Sprachäußerungen und Erweitern von Trainingsdaten
DE102008034979B4 (de) Verfahren und Einrichtung zur Erzeugung von fehlerreduzierten hochauflösenden und kontrastverbesserten Bildern
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
US20200167637A1 (en) Neural network processor using dyadic weight matrix and operation method thereof
DE102021108622A1 (de) Neuronale netzvorrichtung , verfahren zum betrieb der neuronalen netzvorrichtung und anwendungsprozessor, der die neuronale netzvorrichtung umfasst
DE102020107490A1 (de) Künstliches neuronales netzwerkmodell und dieses enthaltende elektronische vorrichtung
DE112020000448T5 (de) Kameraselbstkalibrierungsnetz
DE102018128592A1 (de) Erzeugen eines Bilds unter Verwendung einer Map, die verschiedene Klassen von Pixeln repräsentiert
DE102019119746A1 (de) Bildsignalprozessor, Verfahren zum Betreiben des Bildsignalprozessors und Anwendungsprozessor mit dem Bildsignalprozessor
DE102020101275A1 (de) Rechenvorrichtung zum Trainieren eines künstlichen neuronalen Netzwerkmodells, Verfahren zum Trainieren des künstlichen neuronalen Netzwerkmodells und Speichersystem zum Speichern desselben
DE102019134020A1 (de) Dekompprimierungstechniken zur verarbeitung komprimierter daten, die für künstliche neuronale netzwerke geeignet sind
DE102018114799A1 (de) Halbüberwachtes lernen zur orientierungspunktlokalisierung
DE102021107510A1 (de) Training eines neuronalen netzwerks unter speicherbeschränkung
DE102020107868A1 (de) Objektdetektionssystem für die detektion eines objekts mit hilfe einer hierarchie-pyramide und objektdetektionsverfahren
DE102021121299A1 (de) NPU-Vorrichtung, die eine Faltungsoperation basierend auf der Anzahl an Kanälen durchführt, und Betriebsverfahren derselben
DE102020101525A1 (de) Blind-spot-faltungsarchitekturen und bayessche bildwiederherstellung
DE102018222300A1 (de) Skalierende Detektion
DE112020003055T5 (de) Neuanordnen der operationen eines neuronalen netzwerks für parallele ausführung

Legal Events

Date Code Title Description
R012 Request for examination validly filed