DE102013209657A1 - FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen - Google Patents

FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen Download PDF

Info

Publication number
DE102013209657A1
DE102013209657A1 DE102013209657.7A DE102013209657A DE102013209657A1 DE 102013209657 A1 DE102013209657 A1 DE 102013209657A1 DE 102013209657 A DE102013209657 A DE 102013209657A DE 102013209657 A1 DE102013209657 A1 DE 102013209657A1
Authority
DE
Germany
Prior art keywords
exponent
result
mantissa
unit
bit resolution
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
DE102013209657.7A
Other languages
English (en)
Inventor
Andre GUNTORO
Wolfgang Fischer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102013209657.7A priority Critical patent/DE102013209657A1/de
Priority to US14/283,528 priority patent/US9569175B2/en
Priority to KR1020140060977A priority patent/KR102208274B1/ko
Priority to CN201410220542.XA priority patent/CN104182201A/zh
Priority to JP2014106814A priority patent/JP6382577B2/ja
Publication of DE102013209657A1 publication Critical patent/DE102013209657A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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

Abstract

Die Erfindung betrifft eine FMA-Einheit (42) zur Durchführung einer Rechenoperation in einer Modellberechnungseinheit (3) in einem Steuergerät (1), wobei als Eingangsgrößen zwei Multiplikanden und ein Summand jeweils in Form eines Fließkommawerts verarbeitbar sind und als eine Ausgangsgröße das Berechnungsergebnis in Form eines Fließkommawerts bereitgestellt wird, wobei die FMA-Einheit (42) ausgebildet ist, um eine Multiplikation und eine nachfolgende Addition durchzuführen, wobei die Bitauflösungen der Eingänge für die Multiplikanden niedriger sind als die Bitauflösung des Eingangs für den Summand und die Bitauflösung der Ausgangsgröße.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft in Hardware realisierte Einheiten in einem Steuergerät, insbesondere FMA-Einheiten (FMA = Floating Point Multiply and Add Operation, Fused Multiply Add Operation).
  • Stand der Technik
  • Aus dem Stand der Technik sind Steuergeräte mit einer Hauptrecheneinheit und einer separaten Modellberechnungseinheit zur Berechnung von datenbasierten Funktionsmodellen bekannt. So zeigt beispielsweise die Druckschrift DE 10 2010 028 266 A1 ein Steuergerät mit einer zusätzlichen Logikschaltung als Modellberechnungseinheit, die zur rein hardwarebasierten Berechnung von Multiplikationen, Additionen und Exponentialfunktionen in einer oder mehreren Schleifenberechnungen ausgebildet ist. Dies ermöglicht es, Bayes-Regressionsverfahren, die insbesondere für die Berechnung von Gauß-Prozessmodellen benötigt werden, in einer Hardwareeinheit zu unterstützen.
  • Die Modellberechnungseinheit ist insgesamt dazu ausgelegt, mathematische Prozesse zur Berechnung des datenbasierten Funktionsmodells basierend auf Parametern und Stützstellen bzw. Trainingsdaten durchzuführen. Insbesondere ist die Modellberechnungseinheit zur effizienten hardwarebasierten Berechnung von Exponentialfunktionen in zwei Berechnungsschleifen ausgebildet, so dass es möglich ist, Gauß-Prozessmodelle mit einer höheren Rechengeschwindigkeit zu rechnen, als dies in der softwaremäßig betriebenen Hauptrecheneinheit erfolgen kann. Zur Beschleunigung der Berechnung in der Logikeinheit können Multiplikations- und Additionsprozesse in einer gemeinsamen MAK- bzw. FMA-Einheit kombiniert werden, die eine Hardwarerealisierung für eine Additions- und eine Multiplikationsoperation in besonders effizienter Weise zur Verfügung stellt.
  • Beispielsweise ist in der Druckschrift US 7,080,111 B2 eine solche FMA-Einheit für eine eingangsseitige und ausgangsseitige Auflösung von 32 Bit beschrieben. Auch die Druckschrift US 7,346,642 B1 zeigt eine solche FMA-Einheit, jedoch mit einer verbesserten Genauigkeit.
  • Offenbarung der Erfindung
  • Erfindungsgemäß sind die FMA-Einheit zur Durchführung einer Rechenoperation in einer Modellberechnungseinheit in einem Steuergerät gemäß Anspruch 1 sowie die Modellberechnungseinheit und ein Steuergerät gemäß den nebengeordneten Ansprüchen vorgesehen.
  • Weitere vorteilhafte Ausgestaltungen der vorliegenden Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Gemäß einem ersten Aspekt ist eine FMA-Einheit zur Durchführung einer Rechenoperation in einer Modellberechnungseinheit in einem Steuergerät vorgesehen, wobei als Eingangsgrößen zwei Multiplikanden und ein Summand jeweils in Form eines Fließkommawerts verarbeitbar sind und als eine Ausgangsgröße das Berechnungsergebnis in Form eines Fließkommawerts entsprechend einem Mantissenergebnis und einem Exponentenergebnis bereitgestellt wird, wobei die FMA-Einheit ausgebildet ist, um eine Multiplikation und eine nachfolgende Addition durchzuführen, wobei die Bitauflösungen der Eingänge für die Multiplikanden niedriger sind als die Bitauflösung des Eingangs für den Summanden und die Bitauflösung der Ausgangsgröße.
  • Die obige FMA-Einheit führt eine Multiplikation von zwei Multiplikanden und eine Addition des Multiplikationsergebnisses mit einem Summanden aus. Die obige FMA-Einheit unterscheidet sich von bekannten FMA-Einheiten dadurch, dass die Multiplikanden mit einer niedrigeren Genauigkeit bereitgestellt und verrechnet werden als der Summand und das Ergebnis der Berechnung in der FMA-Einheit. Weiterhin wird das Zwischenergebnis der Multiplikation ohne Genauigkeitsverlust dargestellt. Bei der Wahl der einzelnen Bitauflösungen muss eine Abwägung vorgenommen werden, bei der berücksichtigt wird, dass beim Einsatz der FMA-Einheit in einer Modellberechnungseinheit mit einer oder mehreren Berechnungsschleifen Summenbildungen wiederholt akkumulativ durchgeführt werden und dabei eine ausreichende Genauigkeit erreicht werden muss. Eine ausreichende Bitauflösung muss insbesondere aufgrund von numerischen Problemen bei sehr kleinen akkumulierten Werten, d. h. Werten nahe Null, oder sehr großen Werten der Summanden bereitgestellt werden.
  • Werden andererseits die Bitauflösungen der Multiplikanden und der Summanden zu groß gewählt, so wird aufgrund der Hardwarerealisierung des Algorithmus mehr Logik benötigt, so dass die benötigte Fläche zur Realisierung der FMA-Einheit in integrierter Aufbauweise deutlich vergrößert und zudem auch die Leistungsfähigkeit der Hardware verringert ist.
  • Die obige FMA-Einheit schlägt die Verwendung des Multiplikationsteils der FMA-Einheit mit einer verringerten Genauigkeit vor. Das heißt, die Multiplikanden können nur mit einer Bitauflösung vorgegeben und verrechnet werden, die geringer ist als die Bitauflösung der nachfolgenden Summenbildung. Dies führt zu einer merklichen Einsparung an benötigter Chipfläche, da der Multiplikationsteil den Teil der FMA-Einheit darstellt, der die größte Fläche benötigt. Insbesondere wenn die Bitauflösung der Multiplikanden bzw. deren Mantissenwerte für die Multiplikation der Hälfte oder weniger als die Hälfte der Bitauflösung des Ausgangswerts und des Summanden bzw. deren Mantissenwerte entspricht, ist keine interne Umwandlung des Multiplikationsergebnisses in einen Wert mit verringerter Bitauflösung mehr notwendig, um die Addition durchführen zu können, wie dies bisher der Fall ist.
  • Vielmehr kann die Bitauflösung des Zwischenergebnisses der Multiplikation so gewählt werden, dass die Genauigkeit nicht reduziert wird. Zum Beispiel können die Multiplikanden mit einer Genauigkeit von 32 Bit Fließkommaformat (Single-Precision) mit einem Exponenten von 8 Bit und einer Mantisse von 23 Bit bereitgestellt werden. Es kann eine 24 Bit × 24 Bit-Integermultiplikation angewandt werden, die zu einer fraktionalen Genauigkeit von 48 Bit führt. Weiterhin kann durch die reduzierte Bitauflösung der Multiplikanden die als Eingangsgrößen bereitzustellende Datenmenge reduziert werden, da z.B. bei einem gewünschten Endergebnis in 64-Bitauflösung die beiden Multiplikanden nur in 32-Bitauflösung bereitgestellt werden müssen.
  • Weiterhin kann die FMA-Einheit umfassen:
    • – einen Exponenten-Additionsblock, der ausgebildet ist, um die Exponenten der Multiplikanden zur Produktbildung der Exponenten zu addieren und ein entsprechendes Exponenten-Zwischenergebnis bereitzustellen;
    • – einen Multiplikationsblock, der ausgebildet ist, um die Mantissenwerte der Multiplikanden zu multiplizieren und ein Mantissen-Multiplikationsergebnis zu erhalten;
    • – einen Exponenten-Evaluierungsblock, der ausgebildet ist, um eine Differenz zwischen dem Exponenten-Zwischenergebnis EG und dem Exponenten des Summanden zu ermitteln und ein Exponenten-Ergebnis bereitzustellen; und
    • – einen Additionsblock, der ausgebildet ist, um abhängig von der ermittelten Differenz zwischen dem Exponenten-Zwischenergebnis EG und dem Exponenten des Summanden das Mantissen-Multiplikationsergebnis oder die Mantisse des Summanden einer Rechtsverschiebungsoperation zu unterziehen und diese anschließend zu addieren, um ein Mantissen-Ergebnis zu erhalten, wobei das Mantissen-Ergebnis und das Exponenten-Ergebnis die Ausgangsgröße angeben; wobei die Bitauflösungen der Eingänge des Exponenten-Additionsblocks und des Multiplikationsblocks niedriger sind als die Bitauflösungen der Eingänge des Exponenten-Evaluierungsblocks und des Additionsblocks.
  • Gemäß einer Ausführungsform können die Multiplikanden eine erste Mantissen-Bitauflösung und eine erste Exponenten-Bitauflösung, und der Summand und die Ausgangsgröße eine zweite Mantissen-Bitauflösung und eine zweite Exponenten-Bitauflösung aufweisen, wobei die zweite Mantissen-Bitauflösung mindestens dem Doppelten der ersten Mantissen-Bitauflösung entspricht.
  • Es kann vorgesehen sein, dass der Exponenten-Evaluierungsblock ausgebildet ist, um das Exponenten-Ergebnis als Wert des größeren Exponenten aus dem Exponenten-Zwischenergebnis EG und dem Exponenten des Summanden bereitzustellen, wobei der Additionsblock ausgebildet ist, um abhängig von der ermittelten Differenz zwischen dem Exponenten-Zwischenergebnis EG und dem Exponenten des Summanden entweder das Mantissen-Multiplikationsergebnis oder die Mantisse des Summanden einer Rechtsverschiebungsoperation zu unterziehen, dessen zugeordneter Exponent der kleinere ist.
  • Insbesondere kann ein Normierungsblock vorgesehen sein, um das Exponenten-Ergebnis und das Mantissen-Ergebnis zu normieren, in eine entsprechende Fließkommadarstellung zu bringen und bereitzustellen.
  • Gemäß einem Aspekt ist eine Modellberechnungseinheit für ein Steuergerät vorgesehen, umfassend einen Rechenkern mit einer Logikeinheit, um einen in Hardware implementierten Algorithmus zu berechnen, wobei eine FMA-Einheit zur Durchführung einer Additions- und/oder Multiplikationsoperation vorgesehen ist.
  • Insbesondere kann die Logikeinheit ausgebildet sein, um eine Bayes-Regression zu berechnen.
  • Gemäß einem Aspekt ist ein Steuergerät vorgesehen, umfassend:
    • – eine softwaregesteuerte Hauptrecheneinheit; und
    • – die obige Modellberechnungseinheit.
  • Gemäß einer Ausführungsform kann ein Speicher vorgesehen sein, um Hyperparameter und Stützstellendaten zu speichern, wobei die Hyperparameter und die Stützstellendaten mit der geringeren Bitauflösung bereitgestellt werden.
  • Kurzbeschreibung der Zeichnungen
  • Bevorzugte Ausführungsformen werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
  • 1 eine schematische Darstellung eines Steuergeräts mit einer Modellberechnungseinheit;
  • 2 eine schematische Darstellung eines Rechenkerns einer Modellberechnungseinheit; und
  • 3 eine schematische Darstellung einer FMA-Berechnung in der Modellberechnungseinheit der 1.
  • Beschreibung von Ausführungsformen
  • Die in der nachfolgenden Beschreibung verwendeten Fließkommaformate basieren auf dem IEEE-754 Standard.
  • 1 zeigt eine schematische Darstellung einer Hardwarearchitektur für ein integriertes Steuergerät 1, in dem in integrierter Weise eine Hauptrecheneinheit 2 und eine Modellberechnungseinheit 3 zur hardwarebasierten Berechnung eines datenbasierten Funktionsmodells vorgesehen sind. Die Hauptrecheneinheit 2 und die Modellberechnungseinheit 3 stehen über eine interne Kommunikationsverbindung 4, wie z. B. einen Systembus, miteinander in Kommunikationsverbindung. Weiterhin kann das Steuergerät 1 einen internen Speicher 5 und eine DMA-Einheit 6 (DMA = Direct Memory Access) umfassen, die über die interne Kommunikationsverbindung 4 miteinander in Verbindung stehen.
  • Grundsätzlich ist die Modellberechnungseinheit 3 hartverdrahtet und dem entsprechend nicht dazu ausgebildet, einen Softwarecode auszuführen. Aus diesem Grund ist in der Modellberechnungseinheit 3 auch kein Prozessor vorgesehen. Dies ermöglicht eine ressourcenoptimierte Realisierung einer derartigen Modellberechnungseinheit 3 bzw. einen flächenoptimierten Aufbau in integrierter Bauweise. Die Modellberechnungseinheit 3 weist einen Rechenkern 31 auf, der eine Berechnung eines vorgegebenen Algorithmus rein in Hardware implementiert. Der Rechenkern 31 umfasst dazu eine Logikschaltung 43, eine Exponentialfunktionseinheit 41 zur hardwarebasierten Berechnung einer Exponentialfunktion, und eine FMA-Einheit 42 zur hardwarebasierten Berechnung einer kombinierten Multiplikations- und Additionsoperation in Verbindung.
  • Die Verwendung von nicht parametrischen, datenbasierten Funktionsmodellen basiert auf einem Bayes-Regressionsverfahren. Die Grundlagen der Bayes-Regression sind beispielsweise in C. E. Rasmussen et al., „Gaussian Processes for Machine Learning", MIT Press 2006, beschrieben. Bei der Bayes-Regression handelt es sich um ein datenbasiertes Verfahren, das auf einem Modell basiert. Zur Erstellung des Modells sind Messpunkte von Trainingsdaten sowie zugehörige Ausgangsdaten einer Ausgangsgröße erforderlich. Die Erstellung des Modells erfolgt anhand der Verwendung von Stützstellendaten, die den Trainingsdaten ganz oder teilweise entsprechen oder aus diesen generiert werden. Weiterhin werden abstrakte Hyperparameter bestimmt, die den Raum der Modellfunktionen parametrisieren und effektiv den Einfluss der einzelnen Messpunkte der Trainingsdaten auf die spätere Modellvorhersage gewichten.
  • Zum Start einer Berechnung weist die Recheneinheit 2 die DMA-Einheit 6 an, die das zu berechnende Funktionsmodell betreffenden Konfigurationsdaten in die Modellberechnungseinheit 3 zu übertragen und die Berechnung zu starten, die mithilfe der Konfigurationsdaten durchgeführt wird. Die Konfigurationsdaten umfassen die Hyperparameter eines Gauß-Prozessmodells sowie Stützstellendaten, die vorzugsweise mithilfe eines Adresszeigers auf den der Modellberechnungseinheit 3 zugewiesenen Adressbereich des Speichers 5 angegeben werden.
  • Die Berechnung in der Modellberechnungseinheit 3 erfolgt in einer durch den nachfolgenden Pseudo-Code realisierte Hardware-Architektur in der Modellberechnungseinheit 3, die der obigen Berechnungsvorschrift entspricht. Aus dem Pseudo-Code ist zu erkennen, dass Berechnungen in einer inneren Schleife und einer äußeren Schleife erfolgen und deren Teilergebnisse akkumuliert werden.
    Figure DE102013209657A1_0002
    Figure DE102013209657A1_0003
  • Bei einer Hardwareimplementierung ist eine Berechnung der Form a × b + c in besonders effizienter Weise mithilfe einer FMA-Einheit möglich. Eine solche FMA-Einheit lässt sich in Hardware realisieren, um innerhalb weniger Taktzyklen eine entsprechende Berechnung durchführen zu können. Unter Umständen kann die Berechnung sogar innerhalb eines Taktzyklus erfolgen. Die Berechnung wird in Hardware realisiert, wie es in dem beigefügten Pseudo-C-Code angegeben ist.
  • Die Berechnung des obigen Algorithmus kann mit folgenden Einheiten in dem Rechenkern 31, der in 2 detaillierter dargestellt ist, durchgeführt werden. Der Rechenkern 31 umfasst dazu eine Logikschaltung 43, eine Exponentialfunktionseinheit 41 und eine FMA-Einheit 42, die eine kombinierte Multiplikationsund Additionsoperation von Eingangsgrößen in einem Fließkommaformat bereitstellt.
  • Der obige im Pseudo-C-Code angegebene Berechnungsablauf wird durch eine geeignete, den Algorithmus als Hardware realisierende Logikschaltung 43 gesteuert. Die Logikschaltung 43 stellt eine entsprechende Verdrahtung und Ablaufsteuerung dar.
  • 3 zeigt eine schematische Darstellung einer Berechnung in der FMA-Einheit 42. Der FMA-Einheit 42 werden Eingangsgrößen a, b, c für die Berechnung von a × b + c, nämlich die Multiplikanden a, b und der Summand, c zur Verfügung gestellt. Die Eingangsgrößen a, b, c sind im Fließkommaformat bereitgestellt. Insbesondere sind die Eingänge für die Multiplikanden a, b in einer ersten Bitauflösung und der Eingang für den Summanden c und der Ausgang in einer zweiten Bitauflösung bereitgestellt. Die erste Bitauflösung ist geringer als die zweite Bitauflösung. In einem Beispiel kann die erste Bitauflösung 32 Bit betragen und die zweite Bitauflösung 64 Bit.
  • Die FMA-Einheit 42 enthält einen Exponenten-Additionsblock 51, um die Exponenten Ea, Eb der Eingangsgrößen (Multiplikanden) a, b für die Produktbildung der Exponenten zu addieren und ein entsprechendes Exponenten-Zwischenergebnis EG einem Exponenten-Evaluierungsblock 52 zur Verfügung zu stellen. Weiterhin werden die Mantissenwerte Ma, Mb der Multiplikanden a, b in einem Multiplikationsblock 53 multipliziert und das entsprechende Mantissen-Multiplikationsergebnis MG wird einem Additionsblock 54 bereitgestellt.
  • Dem Exponenten-Evaluierungsblock 52 wird weiterhin der Exponent Ec des Summanden c zugeführt. Das Exponenten-Zwischenergebnis EG des Exponentenadditionsblocks 51 wird an den Exponenten Ec des Summanden c angeglichen. Dazu wird eine Differenz aus dem Exponenten Ec des Summanden und dem Exponenten-Zwischenergebnis EG gebildet und an den Additionsblock 54 kommuniziert. Der größere der Exponentenwerte Ec, EG wird als Exponenten-Ergebnis EE an einen nachgeordneten Normierungsblock 55 weitergeleitet.
  • Dem Additionsblock 54 wird weiterhin die Mantisse Mc des Summanden c zugeführt. Es wird eine entsprechende Rechtsverschiebung einer der dem Additionsblock zugeführten Mantissen Mc, MG um eine Anzahl von Bits vorgenommen, die der ermittelten Differenz entspricht. Insbesondere wird der Betrag derjenigen der Mantissen, nämlich der Mantisse Mc des Summanden c oder des Mantissen-Multiplikationsergebnis MG, deren zugehöriger Exponent niedriger ist, durch eine Rechtsverschiebungsoperation erhöht. Anschließend, d. h. nach der Rechtsverschiebungsoperation, wird eine Addition bzw. Subtraktion (abhängig von den Vorzeichen) der nun vorliegenden Mantissenwerte Mc, MG vorgenommen, um ein Mantissen-Ergebnis ME zu erhalten. Das Mantissen-Ergebnis ME wird an den nachgeordnete Normierungsblock 55 weitergeleitet.
  • Das aus Mantissen-Ergebnis ME und Exponenten-Ergebnis EE gebildete Ergebnis wird dann durch den Normierungsblock 55 normiert, um so das Endergebnis zu bilden. Vorzugsweise wird der Mantissenwert des Endergebnisses auf einen Wert von z. B. zwischen [1.0; 2.0) normiert. Man erkennt, dass eine Normierung nur am Ende des Berechnungsverfahrens notwendig ist und nicht bereits nach der Multiplikation. Dadurch kann durch das Vorsehen einer Multiplikation mit einer geringeren Bit-Auflösung als die Bit-Auflösung der nachfolgenden Addition in vorteilhafter Weise für die Modellberechnung verwendet werden.
  • Die durchgeführte Multiplikation verwendet 24 Bit × 24 Bit-Mantissenwerte (23 Bit Mantisse + Hidden-Bit) mit einem 48-Bit-Ergebnis, um das Mantissen-Multiplikationsergebnis MG zu erhalten. Die Multiplikation kann beispielsweise mithilfe eines Multiplizier-Arrays, eines Carry-Save-Addierers oder eines höheren Radix-Multiplizierers durchgeführt werden. Da der Summand c eine höhere Bitauflösung aufweist als die Multiplikanden a oder b, ist es nicht notwendig, das Mantissen-Multiplikationsergebnis MG zu einem 32-Bit-Wert, d. h. einem Wert mit 24-Bit-Mantissenwert und 8-Bit-Exponentenwert, zu normieren. Für die 64-Bitauflösung des Summanden c beträgt die Bitauflösung des Mantissenwerts 53 Bit. Daher kann das 48-Bit-Ergebnis des Mantissenwerts verwendet und vor der Addition auf 53 Bit erweitert werden. Die einfachste Erweiterung besteht darin, die niedrigsten 5 Bits mit Nullen aufzufüllen.
  • Weiterhin ist es ebenfalls möglich, eine Voranpassung durchzuführen, indem das Exponenten-Zwischenergebnis EG und der Exponent Ec des Summanden c angeglichen werden, so dass die obige Erweiterung eine Rechtsverschiebungsoperation des Mantissenwerts, dem ein niedriger Exponentenwert zugeordnet ist, enthalten kann. Dadurch können verschiedene Vorteile erreicht werden, wie beispielsweise eine verbesserte Genauigkeit für den Addierer, da das Multiplikationsergebnis nicht auf 24 Bit abgerundet wird.
  • Weiterhin kann der Flächenbedarf bei einer integrierten Aufbauweise der FMA-Einheit 42 niedrig gehalten werden, da lediglich ein 24 Bit × 24 Bit-Multiplizierer benötigt wird. Durch die niedrige Bitauflösung der Eingangsgrößen für die Multiplikation im Vergleich zu der Bitauflösung des Endergebnisses kann eine hohe Leistungsfähigkeit der Hardware-Berechnung erreicht werden.
  • 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
    • DE 102010028266 A1 [0002]
    • US 7080111 B2 [0004]
    • US 7346642 B1 [0004]
  • Zitierte Nicht-Patentliteratur
    • IEEE-754 Standard [0024]
    • C. E. Rasmussen et al., „Gaussian Processes for Machine Learning“, MIT Press 2006 [0027]

Claims (9)

  1. FMA-Einheit (42) zur Durchführung einer Rechenoperation in einer Modellberechnungseinheit (3) in einem Steuergerät (1), wobei als Eingangsgrößen zwei Multiplikanden und ein Summand jeweils in Form eines Fließkommawerts verarbeitbar sind und als eine Ausgangsgröße das Berechnungsergebnis in Form eines Fließkommawerts bereitgestellt wird, wobei die FMA-Einheit (42) Eingänge für die zwei Multiplikanden und einen Eingang für den Summanden aufweist und ausgebildet ist, um eine Multiplikation der Multiplikanden und eine nachfolgende Addition des Berechnungsergebnisses der Multiplikation mit dem Summanden durchzuführen, wobei die Bitauflösungen der Eingänge für die Multiplikanden niedriger sind als die Bitauflösung des Eingangs für den Summanden und die Bitauflösung der Ausgangsgröße.
  2. FMA-Einheit (42) nach Anspruch 1, wobei die Multiplikanden eine erste Mantissen-Bitauflösung und eine erste Exponenten-Bitauflösung aufweisen und der Summand und die Ausgangsgröße eine zweite Mantissen-Bitauflösung und eine zweite Exponenten-Bitauflösung aufweisen, wobei die zweite Mantissen-Bitauflösung mindestens dem Doppelten der ersten Mantissen-Bitauflösung entspricht.
  3. FMA-Einheit (42) nach Anspruch 2, umfassend: – einen Exponenten-Additionsblock (51), der ausgebildet ist, um die Exponenten der Multiplikanden zur Produktbildung der Exponenten zu addieren und ein entsprechendes Exponenten-Zwischenergebnis bereitzustellen; – einen Multiplikationsblock (53), der ausgebildet ist, um die Mantissenwerte (Ma, Mb) der Multiplikanden zu multiplizieren und ein Mantissen-Multiplikationsergebnis (MG) zu erhalten; – einen Exponenten-Evaluierungsblock (52), der ausgebildet ist, um eine Differenz zwischen dem Exponenten-Zwischenergebnis (EG) und dem Exponenten (Ec) des Summanden zu ermitteln und ein Exponenten-Ergebnis (EE) bereitzustellen; und – einen Additionsblock (54), der ausgebildet ist, um abhängig von der ermittelten Differenz zwischen dem Exponenten-Zwischenergebnis (EG) und dem Exponenten (Ec) des Summanden das Mantissen-Multiplikationsergebnis (MG) oder die Mantisse (Mc) des Summanden einer Rechtsverschiebungsoperation zu unterziehen und diese anschließend zu addieren, um ein Mantissen-Ergebnis zu erhalten, wobei das Mantissen-Ergebnis (ME) und das Exponenten-Ergebnis (EE) die Ausgangsgröße (D) angeben; wobei die Bitauflösungen der Eingänge des Multiplikationsblocks (53) niedriger sind als die Bitauflösung des Eingangs des Additionsblocks.
  4. FMA-Einheit (42) nach Anspruch 2 oder 3, wobei der Exponenten-Evaluierungsblock (52) ausgebildet ist, um das Exponenten-Ergebnis (EE) als Wert des größeren Exponenten aus dem Exponenten-Zwischenergebnis (EG) und dem Exponenten (Ec) des Summanden bereitzustellen, wobei der Additionsblock (54) ausgebildet ist, um abhängig von der ermittelten Differenz zwischen dem Exponenten-Zwischenergebnis (EG) und dem Exponenten des Summanden denjenigen Wert aus dem Mantissen-Multiplikationsergebnis (MG) oder der Mantisse (Mc) des Summanden einer Rechtsverschiebungsoperation zu unterziehen, dessen zugeordneter Exponent der kleinere ist.
  5. FMA-Einheit (42) nach einem der Ansprüche 1 bis 4, wobei ein Normierungsblock (55) vorgesehen ist, um das Exponenten-Ergebnis (EE) und das Mantissen-Ergebnis (ME) zu normieren.
  6. Modellberechnungseinheit (3) für ein Steuergerät (1), umfassend einen Rechenkern (31) mit einer Logikeinheit (43), um einen in Hardware implementierten Algorithmus zu berechnen, wobei eine FMA-Einheit (42) nach einem der Ansprüche 1 bis 5 zur Durchführung einer Additions- und/oder Multiplikationsoperation vorgesehen ist.
  7. Modellberechnungseinheit (3) nach Anspruch 6, wobei der Rechenkern (31) ausgebildet ist, um eine Bayes-Regression zu berechnen.
  8. Steuergerät (1), umfassend: – eine softwaregesteuerte Hauptrecheneinheit (2); und – eine Modellberechnungseinheit (3) nach Anspruch 6.
  9. Steuergerät (1) nach Anspruch 8, wobei ein Speicher (5) vorgesehen ist, um Hyperparameter und Stützstellendaten eines datenbasierten Funktionsmodells, insbesondere eines Gaußprozessmodells, zu speichern, wobei die Hyperparameter und die Stützstellendaten mit der geringeren Bitauflösung bereitgestellt werden.
DE102013209657.7A 2013-05-24 2013-05-24 FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen Pending DE102013209657A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102013209657.7A DE102013209657A1 (de) 2013-05-24 2013-05-24 FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen
US14/283,528 US9569175B2 (en) 2013-05-24 2014-05-21 FMA unit, in particular for utilization in a model computation unit for purely hardware-based computing of function models
KR1020140060977A KR102208274B1 (ko) 2013-05-24 2014-05-21 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛
CN201410220542.XA CN104182201A (zh) 2013-05-24 2014-05-23 尤其在模型计算单元中纯基于硬件计算函数模型的fma单元
JP2014106814A JP6382577B2 (ja) 2013-05-24 2014-05-23 関数モデルを純粋にハードウェア上で計算するモデル計算ユニット内での利用ためのfmaユニット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013209657.7A DE102013209657A1 (de) 2013-05-24 2013-05-24 FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen

Publications (1)

Publication Number Publication Date
DE102013209657A1 true DE102013209657A1 (de) 2014-11-27

Family

ID=51863176

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013209657.7A Pending DE102013209657A1 (de) 2013-05-24 2013-05-24 FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen

Country Status (5)

Country Link
US (1) US9569175B2 (de)
JP (1) JP6382577B2 (de)
KR (1) KR102208274B1 (de)
CN (1) CN104182201A (de)
DE (1) DE102013209657A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213420A1 (de) * 2013-04-10 2014-10-16 Robert Bosch Gmbh Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
DE102018209901A1 (de) * 2018-06-19 2019-12-19 Robert Bosch Gmbh Recheneinheit, Verfahren und Computerprogramm zum Multiplizieren zumindest zweier Multiplikanden
CN112685693B (zh) * 2020-12-31 2022-08-02 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080111B2 (en) 2001-06-04 2006-07-18 Intel Corporation Floating point multiply accumulator
US7346642B1 (en) 2003-11-14 2008-03-18 Advanced Micro Devices, Inc. Arithmetic processor utilizing multi-table look up to obtain reciprocal operands
DE102010028266A1 (de) 2010-04-27 2011-10-27 Robert Bosch Gmbh Steuergerät und Verfahren zur Berechnung einer Ausgangsgröße für eine Steuerung

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100465874C (zh) * 1995-08-31 2009-03-04 英特尔公司 根据指令对数据执行运算的方法、处理器和系统
US6542916B1 (en) * 1999-07-28 2003-04-01 Arm Limited Data processing apparatus and method for applying floating-point operations to first, second and third operands
US7499962B2 (en) * 2004-12-21 2009-03-03 Intel Corporation Enhanced fused multiply-add operation
US8965945B2 (en) * 2011-02-17 2015-02-24 Arm Limited Apparatus and method for performing floating point addition
FR2974645A1 (fr) * 2011-04-28 2012-11-02 Kalray Operateur de multiplication et addition fusionnees a precision mixte
DE102013213420A1 (de) * 2013-04-10 2014-10-16 Robert Bosch Gmbh Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
DE102013212840B4 (de) * 2013-07-02 2022-07-07 Robert Bosch Gmbh Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080111B2 (en) 2001-06-04 2006-07-18 Intel Corporation Floating point multiply accumulator
US7346642B1 (en) 2003-11-14 2008-03-18 Advanced Micro Devices, Inc. Arithmetic processor utilizing multi-table look up to obtain reciprocal operands
DE102010028266A1 (de) 2010-04-27 2011-10-27 Robert Bosch Gmbh Steuergerät und Verfahren zur Berechnung einer Ausgangsgröße für eine Steuerung

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
C. E. Rasmussen et al., "Gaussian Processes for Machine Learning", MIT Press 2006
IEEE-754 Standard

Also Published As

Publication number Publication date
KR20140138053A (ko) 2014-12-03
US20140351309A1 (en) 2014-11-27
JP6382577B2 (ja) 2018-08-29
US9569175B2 (en) 2017-02-14
CN104182201A (zh) 2014-12-03
KR102208274B1 (ko) 2021-01-27
JP2014229318A (ja) 2014-12-08

Similar Documents

Publication Publication Date Title
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
EP0079471B1 (de) Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit
DE102013213420A1 (de) Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
DE112011103206B4 (de) Prozessor und Rechensystem mit einer Multiplizieraddierfunktionseinheit zum Ausführen von Scale-, Round-, Getexp-, Round-, Getmant-, Reduce-, Range- und Class-Befehlen und Verfahren hierfür
DE10105945B4 (de) Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation
DE102017113232A1 (de) Tensorverarbeitung unter verwendung eines formats mit geringer genauigkeit
DE102014100108A1 (de) Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur
DE112012005014B4 (de) Verfahren zum Ausführen arithmetischer Operationen unter Verwendung sowohl von großen als auch kleinen Gleitkommawerten und Vorrichtung sowie Computerprogrammprodukt hierfür
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE102013220432A1 (de) Modellberechnungseinheit für einen integrierten Steuerbaustein zur Berechnung von LOLIMOT
DE112020003600T5 (de) Hardware für maschinelles lernen mit parameterkomponenten mit reduzierter genauigkeit für effiziente parameteraktualisierung
EP2189897B1 (de) Multiplikation einer ganzen Zahl mit einer Gleitkommazahl
DE102007014808A1 (de) Multiplizier- und Multiplizier- und Addiereinheit
DE3700323A1 (de) Gleitpunktzahlenakkumulatorschaltung
DE102014225039A1 (de) Verfahren und Vorrichtung zum Bereitstellen von spärlichen Gauß-Prozess-Modellen zur Berechnung in einem Motorsteuergerät
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE102013209657A1 (de) FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
EP1499954B1 (de) Berechnung eines ergebnisses einer modularen multiplikation
DE102013227183A1 (de) Verfahren und Vorrichtung zum Bereitstellen eines spärlichen Gauß-Prozess-Modells zur Berechnung in einem Motorsteuergerät
DE102013206292A1 (de) Verfahren und Vorrichtung zum Erstellen eines datenbasierten Funktionsmodells
DE3434777C2 (de)
DE102013212840B4 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
DE2732008B2 (de) Einrichtung zur Reduzierung von Fibonacci-p-Codes auf die Minimalform

Legal Events

Date Code Title Description
R012 Request for examination validly filed